国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

git使用教程(最詳細(xì)、最傻瓜)

2024-07-21 02:03:29
字體:
供稿:網(wǎng)友

1.git 簡介

1.1 產(chǎn)生歷史

git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。
Linus在1991年創(chuàng)建了開源的Linux,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了。Linus雖然創(chuàng)建了Linux,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為Linux編寫代碼,那Linux的代碼是如何管理的呢?事實是,**在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發(fā)給Linus,然后由Linus本人通過手工方式合并代碼!你也許會想,為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢?不是有CVS、SVN這些免費的版本控制系統(tǒng)嗎?因為Linus堅定地反對CVS和SVN,這些集中式的版本控制系統(tǒng)不但速度慢,而且必須聯(lián)網(wǎng)才能使用。有一些商用的版本控制系統(tǒng),雖然比CVS、SVN好用,但那是付費的,和Linux的開源精神不符。不過,到了2002年,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫之大讓Linus很難繼續(xù)通過手工方式管理了,社區(qū)的弟兄們也對這種方式表達(dá)了強(qiáng)烈不滿,于是Linus選擇了一個商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費使用這個版本控制系統(tǒng)。**安定團(tuán)結(jié)的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集,不免沾染了一些梁山好漢的江湖習(xí)氣。開發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議(這么干的其實也不只他一個),被BitMover公司發(fā)現(xiàn)了(監(jiān)控工作做得不錯!),于是BitMover公司怒了,要收回Linux社區(qū)的免費使用權(quán)。Linus可以向BitMover公司道個歉,保證以后會嚴(yán)格管教弟兄們,嗯,這是不可能的。實際情況是這樣的:

Linus花了兩周時間自己用C寫了一個分布式版本控制系統(tǒng),這就是Git!一個月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!牛是怎么定義的呢?大家可以體會一下。Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項目免費提供Git存儲,無數(shù)開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。歷史就是這么偶然,如果不是當(dāng)年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒有免費而超級好用的Git了。

1.2 git兩大特點

版本控制:可以解決多人同時開發(fā)的代碼問題,也可以解決找回歷史代碼的問題。

分布式:Git是分布式版本控制系統(tǒng),同一個Git倉庫,可以分布到不同的機(jī)器上。首先找一臺電腦充當(dāng)服務(wù)器的角色,每天24小時開機(jī),其他每個人都從這個“服務(wù)器“倉庫克隆一份到自己的電腦上,并且各自把各自的提交推送到服務(wù)器倉庫里,也從服務(wù)器倉庫中拉取別人的提交。可以自已搭建這臺服務(wù)器,也可以使用GitHub網(wǎng)站。

2.安裝配置

Windows安裝鏈接

一路點Next即可,安裝位置就放在C盤。

裝好git后


在終端里面敲入git,


出現(xiàn)這樣的畫面就表示你的git裝好了,此處應(yīng)該有掌聲~~

3.創(chuàng)建一個版本庫

(1)新建一個目錄git_test,在git_test目錄下創(chuàng)建一個版本庫,命令如下:



接著初始化倉庫


說明:可以看到在git_test目錄下創(chuàng)建了一個.git隱藏目錄,這就是版本庫目錄。

4.版本的創(chuàng)建與回退

4.1 使用

(1)在git_test目錄下創(chuàng)建一個文件code.txt,編輯內(nèi)容如下:


(2)使用如下兩條命令可以創(chuàng)建一個版本:

git add code.txtgit commit -m “版本1”


(3)使用如下命令可以查看版本記錄:

git log


(4)繼續(xù)編輯code.txt,在里面增加一行。


(5)使用如下命令再創(chuàng)建一個版本并查看版本記錄:


(6)現(xiàn)在若想回到某一個版本,可以使用如下命令:


其中HEAD表示當(dāng)前最新版本【請記死】,HEAD^表示當(dāng)前版本的前一個版本,HEAD^^表示當(dāng)前版本的前前個版本,也可以使用HEAD~1表示當(dāng)前版本的前一個版本,HEAD~100表示當(dāng)前版本的前100版本。



因為版本1的內(nèi)容是1行:

this is the first line

因為版本2的內(nèi)容是2行:

this is the first line
this is the second line

因為
$ git reset --hard HEAD^ HEAD is now at 51d36c7 版本1
使指針HEAD指向(倒退)到版本1,
因此打印的內(nèi)容就是版本1的內(nèi)容,即this is the first line

(7)假如我們現(xiàn)在又想回到版本2,這個時候怎么辦?可以使用如下命令:

git reset --hard 版本號




(8)在終端執(zhí)行如下命令:


版本2又回來了,內(nèi)容也是原來的內(nèi)容。

接著玩


退出終端,再重進(jìn):


這個重進(jìn)終端的操作讓我們看不到版本2的版本號,要回到版本2怎么辦?
命令:git reflog來查看操作記錄。


錯誤示例:

原因是按照當(dāng)前版本1倒退的話,怎么也不會前進(jìn)到版本2吧?邏輯錯誤。


正確實例:
要用到版本號。


查看版本2的內(nèi)容:


不理解版本1,版本2有啥區(qū)別?

這個東西像游戲更新一樣,版本2是在版本1的基礎(chǔ)上添加新功能的,版本1內(nèi)容不發(fā)生改變。例如王者榮耀版本更新,界面總會變化,但是英雄的屬性(技能,名字)一般不會改變。

4.2 工作區(qū)和緩存區(qū)

4.2.1 工作區(qū)(WorkingDirectory)

工作區(qū)(WorkingDirectory) 電腦中的目錄,比如我們的git_test,就是一個工作區(qū)。

4.2.2 版本庫(Repository)

工作區(qū)有一個隱藏目錄.git,這個不是工作區(qū),而是git的版本庫。git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有g(shù)it為我們自動創(chuàng)建的第一個分支master,以及指向master的一個指針叫HEAD。


因為我們創(chuàng)建git版本庫時,git自動為我們創(chuàng)建了唯一一個master分 支,所以,現(xiàn)在,git commit就是往master分支上提交更改。

你可以簡單理解為,需要提交的文件修改通通放到暫存區(qū)【計算機(jī)的緩存區(qū)】,然后,一次性提交暫存區(qū)的所有修改。


前面講了我們把文件往版本庫里添加的時候,是分兩步執(zhí)行的:
第一步是用git add把文件添加進(jìn)去,實際上就是把文件修改添加到暫存區(qū)
第二步是用git commit提交更改,實際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支。

(1)下面在git test目錄下再創(chuàng)建一個文件code2.txt,然后編輯內(nèi)容如下:


(2)然后編輯code.txt,操作如下:



注意的是創(chuàng)建文件和編輯文件都是在工作區(qū)里完成。

(3)使用如下命令查看當(dāng)前工作樹的狀態(tài):

git status


翻譯一下:


上面提示我們code.txt被修改,而code2.txt沒有被跟蹤。

(4)我們使用如下命令把code.txt和code2.txt加入到暫存區(qū),然后再執(zhí)行g(shù)it status命令,結(jié)果如下:


注意:所有的 git add 命令是把所有提交的修改存放到暫存區(qū)。

(5)然后,執(zhí)行g(shù)it commit就可以一次性把暫存區(qū)的所有修改提交到分支并創(chuàng)建一個版本。



注意:指針HEAD永遠(yuǎn)指向當(dāng)前版本。此時當(dāng)前版本是版本3。

(6)一旦提交后,如果你又沒有對工作區(qū)做任何修改,那么工作區(qū)就是“干凈”的。執(zhí)行如下命令可以發(fā)現(xiàn):

現(xiàn)在我們的版本庫變成了醬紫:

4.3 管理修改

git管理的文件的修改,它只會提交暫存區(qū)的修改來創(chuàng)建版本。

(1)編輯code.txt,并使用git add命令將其添加到暫存區(qū)中。


(2)繼續(xù)編輯code.txt,并在其中添加一行。


(3)git commit創(chuàng)建一個版本,并使用git status查看,發(fā)現(xiàn)第二次修改code.txt內(nèi)容之后,并沒有將其添加的工作區(qū),所以創(chuàng)建版本的時候并沒有被提交。



注意:對于code.txt里的四行內(nèi)容,每一個版本對應(yīng)一行,例如版本1對應(yīng)first line,以此類推。

4.4 撤銷修改

(1)繼續(xù)上面的操作,提示我們可使用git checkout

主站蜘蛛池模板: 吴忠市| 西乌| 宁晋县| 内丘县| 雅江县| 乌兰浩特市| 吉林省| 新化县| 扶绥县| 区。| 平武县| 彭州市| 潮州市| 上高县| 侯马市| 稷山县| 镇雄县| 雷波县| 乳源| 阳山县| 昂仁县| 长泰县| 杭锦后旗| 油尖旺区| 伊川县| 南漳县| 新疆| 金寨县| 霍城县| 乌什县| 英吉沙县| 南溪县| 廉江市| 枝江市| 同江市| 呈贡县| 彩票| 陵川县| 乳山市| 北碚区| 城固县|