git checkout -- file
可以丟棄工作區(qū)的修改:
$ git checkout -- readme.txt
命令git checkout -- readme.txt
意思就是瓮孙,把readme.txt文件在工作區(qū)的修改全部撤銷掠兄,這里有兩種情況:
一種是readme.txt自修改后還沒有被放到暫存區(qū)诀黍,現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài)鸟缕;
一種是readme.txt已經(jīng)添加到暫存區(qū)后褐奴,又作了修改拐纱,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)趾盐。
總之庶喜,就是讓這個文件回到最近一次git commit
或git add
時的狀態(tài)。
Git同樣告訴我們救鲤,用命令git reset HEAD file
可以把暫存區(qū)的修改撤銷掉(unstage)久窟,重新放回工作區(qū):
git reset
命令既可以回退版本,也可以把暫存區(qū)的修改回退到工作區(qū)本缠。當(dāng)我們用HEAD時斥扛,表示最新的版本。
總結(jié):
場景1:當(dāng)你改亂了工作區(qū)某個文件的內(nèi)容丹锹,想直接丟棄工作區(qū)的修改時稀颁,用命令git checkout -- file。
場景2:當(dāng)你不但改亂了工作區(qū)某個文件的內(nèi)容楣黍,還添加到了暫存區(qū)時匾灶,想丟棄修改,分兩步租漂,第一步用命令git reset HEAD file阶女,就回到了場景1,第二步按場景1操作哩治。