git的一些介紹(中3)

1)這篇,我們來聊聊關於工作區和暫存區、以及文件的一些命令操作。倉庫的工作區指的是除了.git文件夾的其他目錄。.git文件夾也是版本庫。版本庫存了很多內容,其中最重要的就是stage(或者叫index)的暫存區,以及git爲我們自動創建的第一個分支master,以及指向master的指針叫做“HEAD”。


其實,文件添加到git版本庫的時候,是分兩步執行的,第一步是用git add把文件加到stage,然後通過git commit將暫存區的內容全部提交到當前分支。(注意:只執行git commit並不會將文件提交到分支)。我們在撤銷修改的時候,應該是分爲三種情況:

1 . 僅僅在工作區修改,沒有做git add和git commit操作。

“git status“


”git checkout -- Test.txt“,即可恢復。

2 . 在工作區修改了之後,執行了git add,但是沒有執行git commit。

”git status“


" git reset HEAD Test.txt"


這個時候,就回到了第一種的情況,然後使用”git checkout Test.txt“即可恢復。

3 . 在工作區修改了之後,執行了git add之後,又執行了git commit。

因爲第三種是你已經提交過了,當然版本號就不一致了,因此這種情況的恢復,應該就需要你使用”git reset --hard HEAD^“命令回退版本了。

2)git中的刪除操作也是屬於修改操作。我們可以手動刪除工作區的文件,也可以使用”git rm“來刪除文件。刪除之後的恢復也有兩種情況(假設刪除了Test.txt):

1 . 直接在文件中手動刪除

我們直接使用”git checkout -- Test.txt“命令來恢復即可,因爲手動刪除只是在工作區中刪除了,並不會將這種操作添加到暫存區。

2 . 使用”git rm“命令刪除

我們需要首先使用”git reset --hard Test.txt“來恢復到暫存區之前的操作,然後使用”git checkout -- Test.txt“來進行恢復。


你看上邊的圖,我們使用了”git rm“刪除了文件之後,直接使用”git checkout“命令是無法恢復的,需要先reset,再進行checkout操作。

未完,待續。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章