如果在修改時發現修改錯誤,而要放棄本地修改,可根據情況執行下面命令
1.未使用 git add 緩存代碼時
可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘記中間的 “--” ,不寫就成了檢出分支了!!)。放棄所有的文件修改可以使用 git checkout . 命令。此命令用來放棄掉所有還沒有加入到緩存區(就是 git add 命令)的修改。
2.已經使用了 git add 緩存了代碼
可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)來放棄指定文件的緩存,放棄所以的緩存可以使用 git reset HEAD . 命令。此命令用來清除 git 對於文件修改的緩存。在使用本命令後,本地的修改並不會消失,而是回到了步驟1所示的狀態。繼續用步驟1中的操作,就可以放棄本地的修改。
3.已經用 git commit 提交了代碼。
可以使用 git reset --hard HEAD^ 來回退到上一次commit的狀態。此命令可以用來回退到任意版本,你可以使用 git log 命令來查看git的提交歷史(git必須知道當前版本是哪個版本,在git中,用HEAD表示當前版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100)。