????Git是如何跟蹤修改的?我們之前修改文件后都用到了兩個命令git add <file>
、git commit
,其實在Git中,每次修改后,如果不add
到暫存區,那就不會加入到commit
。 ????查看一下文件內容:
第二次提交測試
,并add
到暫存區。 我第三次測試
,查看此時文件內容,然后直接執行commit
命令。 add
到暫存區了,第二次修改后沒有執行任何命令,所以并沒有加入到暫存區,也就沒有commit
。 ????這個時候,如果我們剛才第二步修改的文件內容是我們修改錯的,我們想直接丟棄工作區的修改時,可以直接使用命令git checkout -- <file>
git checkout -- test.txt
復制代碼
????執行命令后,再次查看工作目錄的當前狀態,會發現工作區已經干凈了,然后查看一下文件的內容,發現我們第二次的修改記錄已經被丟棄了。
add
到了暫存區,這個時候我們想丟棄修改,就要分兩步了,第一步使用命令git reset HEAD <file>
將暫存區的文件修改回退到工作區,接下來就和上面的情景一樣了,我們就可以使用git checkout -- <file>
丟棄修改。 ????比如我們再次在test.txt文件中添加一行內容我第三次測試一下
,并add
到暫存區。 git reset HEAD test.txt
,將暫存區的修改內容回退到工作區。 git checkout -- <file>
git rm
用于刪除一個文件,如果一個文件已經被提交到版本庫,那么我們永遠不用擔心對文件誤刪。我們試著將test.txt文件刪除,然后看一下工作區狀態。 git add
或者git rm
刪除文件,接下來我們執行以下,并查看工作區狀態。 commit
到版本庫了,但是如果我們刪除錯了呢?同樣的道理,我們可以依次執行git reset HEAD test.txt
和git checkout -- test.txt
進行恢復。