git指令-撤銷修改
如果在文件中添加了錯誤的內容,可以撤銷修改
eg:
解決:
可以刪掉最后一行,手動把文件恢復到上一個版本的狀態:
使用git status
你可以發現,Git會告訴你,git checkout -- file可以丟棄工作區的修改:
指令格式--- git checkout -- readme.txt
兩個-- readme前面有空格
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作區的修改全部撤銷,這里有兩種情況:
一種是readme.txt自修改后還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt已經添加到暫存區后,又作了修改,現在,撤銷修改就回到添加到暫存區后的狀態。
總之,就是讓這個文件回到最近一次git commit或git add時的狀態。
現在在cat下
文件已經恢復到上個版本
git checkout -- file命令中的--很重要,沒有--,就變成了“切換到另一個分支”的命令,我們在后面的分支管理中會再次遇到git checkout命令。
加入已經Git add到暫存區了但是沒有commit依然有解決方案:
eg:
Git同樣告訴我們,用命令git reset HEAD
git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用HEAD時,表示最新的版本。
再用git status查看一下,現在暫存區是干凈的,工作區有修改:
丟棄工作區的修改:
summary
場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD <file>,就回到了場景1,第二步按場景1操作。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫。