git應用快速入門

1. git簡介

1.1 產生歷史

​ git是目前世界上最早進的分佈式版本控制系統。git

​ Linus在1991年建立了開源的Linux,今後,Linux系統不斷髮展,已經成爲最大的服務器系統軟件了。Linus雖然建立了Linux,但Linux的壯大是靠全世界熱心的志願者參與的,這麼多人在世界各地爲Linux編寫代碼,那Linux的代碼是如何管理的呢?事實是,在2002年之前,世界各地的志願者把源代碼文件經過diff的方式發給Linus,而後由Linus本人經過手工方式合併代碼!緩存

​ 你也許會想,爲何Linus不把Linux代碼放到版本控制系統裏呢?不是有CVS、SVN這些免費的版本控制系統嗎?由於Linus堅決地反對CVS和SVN,這些集中式的版本控制系統不但速度慢,並且必須聯網才能使用。有一些商用的版本控制系統,雖然比CVS、SVN好用,但那是付費的,和Linux的開源精神不符。不過,到了2002年,Linux系統已經發展了十年了,代碼庫之大讓Linus很難繼續經過手工方式管理了,社區的弟兄們也對這種方式表達了強烈不滿,因而Linus選擇了一個商業的版本控制系統BitKeeper,BitKeeper的東家BitMover公司出於人道主義精神,受權Linux社區無償使用這個版本控制系統。安定團結的大好局面在2005年就被打破了,緣由是Linux社區牛人彙集,難免沾染了一些梁山好漢的江湖習氣。開發Samba的Andrew試圖破解BitKeeper的協議(這麼幹的其實也不僅他一個),被BitMover公司發現了(監控工做作得不錯!),因而BitMover公司怒了,要收回Linux社區的無償使用權。Linus能夠向BitMover公司道個歉,保證之後嚴格管教弟兄們,嗯,這是不可能的。服務器

​ 實際狀況是這樣的:Linus花了兩週時間本身用C寫了一個分佈式版本控制系統,這就是Git!一個月以內,Linux系統的源碼已經由Git管理了!牛是怎麼定義的呢?你們能夠體會一下。Git迅速成爲最流行的分佈式版本控制系統,尤爲是2008年,GitHub網站上線了,它爲開源項目免費提供Git存儲,無數開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。歷史就是這麼偶然,若是不是當年BitMover公司威脅Linux社區,可能如今咱們就沒有免費而超級好用的Git了。分佈式

1.2 git的兩大特色

  • 版本控制:能夠解決多人同時開發的代碼問題,也能夠解決找回歷史代碼的問題。
  • 分佈式:Git是分佈式版本控制系統,同一個Git倉庫,能夠分佈到不一樣的機器上。首先找一臺電腦充當服務器的角色,天天24小時開機,其餘每一個人都從這個「服務器」倉庫克隆一份到本身的電腦上,而且各自把各自的提交推送到服務器倉庫裏,也從服務器倉庫中拉取別人的提交。能夠本身搭建這臺服務器,也可使用GitHub網站。

2. 安裝與配置

2.1 方式1:yum安裝命令以下

(此種安裝的1.8,版本太老,能夠學習用,生成環境建議用第二種方式):ide

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/a69f1d7dde72520efa39cd829ebc424d.png) 學習

2.2 方式2:編譯安裝(生產環境建議此種方式)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/07456582b5f33002e870c1b7d493006a.png) 網站

(3)安裝成功後,運行以下命令:3d

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/f6db1580572213aa6f925902a1dba10c.png) 版本控制

3. 建立一個版本庫

新建目錄git_test,在git_test目錄下建立一個版本庫,命令:git init指針

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/4722f206b798e103d3025b2e141c0e7e.png)

能夠看到在git_test目錄下建立了一個.git隱藏目錄,這就是版本庫目錄。

4. 版本建立與回退

4.1 git的工做原理

① 在版本庫中建立文件的時候,就有了文件的第一個版本,於此同時會生成一個指針指向這個版本

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/6b88e8ed7860db0b26ed20dc7f7deda8.png)

② 當修改了code.txt中的內容之後,就生成了第二個版本,可是這個版本是依賴上一個版本的,在這個版本中僅僅會記錄文件發生了那些修改。在有了一個新版本以後,這個指針會指向最新的版本。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/6df42071833e9d06ac2e29311a3137c5.png)

③ 經過修改指針的位置能夠實現回退到某個版本,表示方式有兩種,一種是用^,一種使用~,以下

l HEAD^ 或者 HEAD~1:表示上一個版本

l HEAD^^ 或者 HEAD~2:表示上兩個版本

經過上面的方式回退到第一個版本以後,指針就指向了版本1

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/12f0ad0473c03b018e670f66adb80859.png)

4.2 使用

(1) 在git_test目錄下建立一個文件code.txt,寫入一行內容以下:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/52eed22d940b2c0dd28dafdbc44b0a82.png)

(2) 使用以下兩條命令能夠建立一個版本,建立版本須要兩步:

① git add code.txt

② git commit –m '版本1'

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/0b245c928d82cb17440a199fca4a106a.png)

(3) 查看版本記錄,命令是git log:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/1928a9c46af9b1e0d5fba3d223e11e6d.png)

(4) 繼續編輯code.txt,在裏面增長一行。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/a8b00e15d20927d2e0f221c9f85ea374.png)

(5) 使用以下命令再建立一個版本並查看版本記錄:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/19ec9f94aa928236749a533ab7273fc1.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/59b8e34134704ae7ffad891986cdce40.png)

(6) 如今若想回到某一個版本,可使用以下命令:

git reset --hard HEAD^

其中HEAD表示當前最新版本,HEAD^表示當前版本的前一個版本,HEAD^^表示當前版本的前前個版本,也可使用HEAD~1表示當前版本的前一個版本,HEAD~100表示當前版本的前100版本。

如今若以爲想回到版本1,可使用以下命令:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/622cf2c65767930b0336720086b396a4.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/bf209a7e8a84c9561660f3d2c832fc3d.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/293e0ee75ade3c7407946616e7e174e7.png)

執行命令後使用git log查看版本記錄,發現如今只能看到版本1的記錄,cat code.txt查看文件內容,如今只有一行,也就是第一個版本中code.txt的內容。

(7) 假如咱們如今又想回到版本2,這個時候怎麼辦?

可使用以下命令:

git reset --hard 版本號

從上面能夠看到版本2的版本號爲:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/d9f54d5442caa834c55f89d961d12ef2.png)

(8) 根據查詢到的序號進行版本選擇:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/43688f6a851ed6184b10b9eb4b36ea66.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/ddc8fb3d31b0b1f58f126f93928438a4.png)

如今發現版本2有回來了。能夠cat code.txt查看其裏面的內容以下:

(9) 假如說上面的終端已經關了改怎麼回退版本。

咱們在執行以下命令將版本回退到版本1。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/adc54a2e15245ecf6ac2032952b54ee5.png)

下面把終端關了,而後再打開終端,發現以前版本2的版本號看不到了。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/2d945896a80dc6303c56dd357abfd91d.png)

那麼怎麼再回到版本2呢?git reflog命令能夠查看咱們的操做記錄。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/1856351329cd92321260f41e3d11a073.png)

能夠看到版本2的版本號,咱們再使用以下命令進行版本回退,版本從新回到了版本2。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/675df08acb21bd8dfe60ed15a5af6fe7.png)

4.3 工做區和暫存區

4.2.1 工做區(Working Directory)

電腦中的目錄,好比咱們的git_test,就是一個工做區。

4.2.2 版本庫(Repository)

l 工做區有一個隱藏目錄.git,這個不是工做區,而是git的版本庫。

l git的版本庫裏存了不少東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有git爲咱們自動建立的第一個分支master,以及指向master的一個指針叫HEAD。

l 由於咱們建立git版本庫時,git自動爲咱們建立了惟一一個master分支,因此,如今,git commit就是往master分支上提交更改。

l 你能夠簡單理解爲,須要提交的文件修改統統放到暫存區,而後,一次性提交暫存區的全部修改。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/9d04da9025130069684dc44c5cf6925b.png)

前面講了咱們把文件往git版本庫裏添加的時候,是分兩步執行的:

第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區;

第二步是用git commit提交更改,實際上就是把暫存區的全部內容提交到當前分支。

(1) 下面在git_test目錄下再建立一文件code2.txt,而後編輯內容以下:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/83ee9f6032ae0bb75f2f08cc9d9c315e.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/ef7e51dcf1ef925e187405bec12ff783.png)

(2) 而後再次編輯code.txt內容,在其中加入一行,編輯後內容以下:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/97dc419986fac449458333fb110a7d22.png)

(3) 使用以下命令查看當前工做樹的狀態:

git status

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/cfb1eb0f1fe49ade9363f35ce4bb992b.png)

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

(4) 咱們使用以下命令把code.txt和code2.txt加入到暫存區,而後再執行git status命令,結果以下:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/06847424b8663028ecab6fecdde05e7b.png)

全部git add命令是把全部提交的修改存放到暫存區。

(5) 而後,執行git commit就能夠一次性把暫存區的全部修改提交到分支建立一個版本。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/80b3bb11d8d8644dcd211cbbfad30a0c.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/85d569a429786cce0694f26a4df4d1f1.png)

(6) 一旦提交後,若是你又沒有對工做區作任何修改,那麼工做區就是「乾淨」的。執行以下命令能夠發現:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/1a39201a621e16067b015747128700ea.png)

4.3 管理修改

git管理的文件的修改,它只會提交暫存區的修改來建立版本。

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

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/4fa2426cd28b21364efc4b55f4aa36be.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/8424cedf040abd54acf8cca269290b8f.png)

添加到緩存區

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/57b57dfcc86e2556bd1c3f1bb474a88d.png)

再添加一行

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/f865de8037b69aff355f1603f06fab93.png)

(2) git commit建立一個版本,

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/f566cad50cca22c4a19fe3b993667c6f.png)

此時並使用git status查看,發現狀態不是clean

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/87ede3cfb11ed956cee55c026ea0ef82.png)

這是由於第二次修改code.txt內容以後,並無將其添加的工做區,因此建立版本的時候並無被提交。

4.4 撤銷修改

(1) 繼續上面的操做,提示咱們可使用格式來撤銷操做,也就是丟棄工做區中你的修改:

git checkout -- <文件>

執行以下命令,

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/355890b389e820c43d12d5e6a440856e.png)

發現工做區乾淨了,

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/19fbdc3cd4e7f4d36298f6d2fed0582b.png)

第二次的改動內容也沒了。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/b8d1df6711d8a61f8704c4da411da7e6.png)

(1) 前面所演示的是還沒有添加到暫存區中的內容進行回滾,其實,即便加入到了暫存區,也是開始能夠回滾的。

咱們繼續編輯code.txt,並在其中添加以下內容 ![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/ba216e8d1d4fdee2a99d4381557af131.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/e66b86628c924d16fa519cec7411b916.png)

並將其添加的暫存區

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/762edae36f9b9aa5787e9933e9c02dac.png)

(3)git一樣告訴咱們,用命令git reset [選項] HEAD file能夠把暫存區的修改撤銷掉,從新放回工做區。

選項有三個

l --hard:緩存區和工做目錄中的內容都回滾到指定的那個版本狀態

l --mixed:默認選項,緩存區和你指定的提交同步,可是工做目錄不受影響

l --soft:緩存區和工做目錄中的內容都不變(僅僅庫中的內容回滾的指定版本)

l 使用這些選項的時候,就不能再指定具體的文件了

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/54ae8f8351550ce24176c04c92239604.png)

狀態

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/71a550c8a984f4a2128a9f64b7012a95.png)

到這裏,僅僅是保存在將暫存區中的內容刪除了,接下來就能夠將這個文件回滾到修改以前的狀態

(4)如今若想丟棄code.txt的修改,執行以下命令便可。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/9831f9bea646ce2be61d164e3df5b478.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/37630b24e0baa6f8d66130e4d625beee.png)

如今,若是你不但改錯了東西,還從暫存區提交到了版本庫,則須要進行版本回退。

小結:

l 場景1:當你改亂了工做區某個文件的內容,想直接丟棄工做區的修改時,用命令git checkout -- file。

l 場景2:當你不但改亂了工做區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操做。

l 場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節。

來演示三個選項的做用

先來演示hard選項

1 在版本庫中編輯一個文件1,並add到暫存區

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/5d530dcb7bce2f17fc4248533e299132.png)

2 編輯另外一個文件(不保存到暫存區)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/2c5bbb630e4f1b577ff93f0a2ca70758.png)

3 查看狀態,一個在暫存區 一個是未追蹤狀態

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/b71db601d079d062721aef77afa375b2.png)

4 用git reset --hard xxxx 回滾到一個狀態

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/a1e85d5186146a53bd624aa9642f51d9.png)

5 再次查看狀態(此時發現是clean,什麼狀態的都沒有了)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/41b06d00f52f39d5b36681a1fb4af1cd.png)

6 這兩個文件中新添加的內容都沒了

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/a370b5a15a1deabee555e293779fd538.png)

先來演示soft選項

前面部分略

1 執行 reset,回滾到第一個版本

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/fc1c65b52e38f2304d76f209c5218e70.png)

2 此時暫存區和文件中的內容都還在

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/69dc1a095d7b3d61645f6b9f38eee320.png)

3 查看當前所處的版本,已經回到了第一個版本,其餘的版本都沒了

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/9c879cf18be9dfe16f3930329531f09a.png)

4.5 對比文件的不一樣

對比工做區和某個版本中文件的不一樣:

(1) 繼續編輯文件code.txt,在其中添加一行內容。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/e5f736f400318148a93ceabadc4a10fb.png)

(2) 如今要對比工做區中code.txt和上個版本中code.txt的不一樣。使用以下命令:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/1a5ec4f8e3e0b2d76e150bfc7fae92de.png)

咱們也能夠和版本庫中的第二個版本作比對

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/e0a7de42a8b74086425df0e2f1ebddd3.png)

對比兩個版本間文件的不一樣:

(1) 如今要對比HEAD和HEAD^版本中code.txt的不一樣,使用以下命令:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/3ed628ef52b772b3e19fef0b79259c63.png)

4.6 刪除文件

(1) 咱們把目錄中的code2.txt刪除。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/6ad4029784e757af1f86d3196beaec1b.png)

這個時候,git知道刪除了文件,所以,工做區和版本庫就不一致了,git status命令會馬上提示哪些文件被刪除了。

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/f4bd59749d6c6686506a782cfbfef7b6.png)

(2) 如今你有兩個選擇,一是確實要從版本庫中刪除該文件,那就用命令git rm刪掉,而且git commit:

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/50be31433c697f5f0b37eca1a304442c.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/11ebc5ed25d427c4c956f2bc92b2aa83.png)

![img](file:///C:/Users/sy/Documents/My Knowledge/temp/fc8918e9-6218-4de1-ae60-6e01447f1ea3/128/index_files/10747f8023cf258fd8bd1b157e2fc920.png)

另外一種狀況是刪錯了,能夠直接使用git checkout – code2.txt,這樣文件code2.txt又回來了。

小結:

  • 命令git rm用於刪除一個文件。
  • 若是一個文件已經被提交到版本庫,那麼你永遠不用擔憂誤刪,可是要當心,你只能恢復文件到最新版本,你會丟失最近一次提交後你修改的內容。
相關文章
相關標籤/搜索