情況一:未使用 git add 緩存代碼時(shí):
// 放棄單個(gè)文件修改,注意不要忘記中間的"--",不寫就成了檢出分支了!
git checkout -- filepathname
// 放棄所有的文件修改
git checkout .
此命令用來放棄掉所有還沒有加入到緩存區(qū)(就是 git add 命令)的修改:內(nèi)容修改與整個(gè)文件刪除。但是此命令不會(huì)刪除掉剛新建的文件斑举。因?yàn)閯傂陆ǖ奈募€沒已有加入到 git 的管理系統(tǒng)中赐纱。所以對(duì)于git是未知的脊奋。自己手動(dòng)刪除就好了。
情況二:已經(jīng)使用了 git add 緩存了代碼:
可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)來放棄指定文件的緩存疙描,放棄所有的緩存可以使用 git reset HEAD . 命令诚隙。
此命令用來清除 git 對(duì)于文件修改的緩存。相當(dāng)于撤銷 git add 命令所在的工作起胰。在使用本命令后久又,本地的修改并不會(huì)消失,而是回到了如(一)所示的狀態(tài)效五。繼續(xù)用(一)中的操作地消,就可以放棄本地的修改。
情況三:已經(jīng)用 git commit 提交了代碼:
可以使用 **git reset --hard HEAD^ 來回退到上一次commit的狀態(tài)畏妖。
此命令可以用來回退到任意版本:git reset --hard commitid **
你可以使用 **git log **命令來查看git的提交歷史脉执。git log 的輸出如下,之一這里可以看到第一行就是 commitid:
圖省略...