已親測(cè)柱徙,如有問題可留言-----------------------------------------------
1、修改但沒有add的文件奇昙,進(jìn)行丟棄:執(zhí)行 git checkout ./ ??
2护侮、已經(jīng)add的文件,進(jìn)行丟棄:執(zhí)行g(shù)it restore —staged ?修改的文件(路徑) ?&& git checkout ./ ? 或者?git rm --cached xxx文件名xxx git rm?
3储耐、已經(jīng)commit的文件羊初,進(jìn)行丟棄:執(zhí)行?git reset --soft HEAD^ && git restore —staged ?修改的文件(路徑) ?&& git checkout ./
HEAD^的意思是上一個(gè)版本,也可以寫成HEAD~1
如果你進(jìn)行了2次commit什湘,想都撤回凳忙,可以使用HEAD~2
--mixed?
意思是:不刪除工作空間改動(dòng)代碼,撤銷commit禽炬,并且撤銷git add . 操作
這個(gè)為默認(rèn)參數(shù),git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一樣的涧卵。
--soft ?
不刪除工作空間改動(dòng)代碼,撤銷commit腹尖,不撤銷git add .?
--hard
刪除工作空間改動(dòng)代碼柳恐,撤銷commit,撤銷git add .?
注意完成這個(gè)操作后热幔,就恢復(fù)到了上一次的commit狀態(tài)乐设。
如果commit注釋寫錯(cuò)了,只是想改一下注釋绎巨,只需要:git commit —amend近尚,此時(shí)會(huì)進(jìn)入默認(rèn)vim編輯器,修改注釋完畢后保存就好了场勤。
git log 查看所有的commit提交記錄戈锻;
Git reflog 查看提交記錄,包含提交分支和媳、撤回和修改的提交記錄格遭,比git log更全面;
git show 查看提交的詳情留瞳;
4拒迅、已經(jīng)push到遠(yuǎn)程的,進(jìn)行丟棄或回退:
執(zhí)行?git reset --soft HEAD^ && git restore —staged ?修改的文件(路徑) ?&& git checkout ./
注:當(dāng)然每種丟棄或者撤回還有其他不同情況和方法,大家可以根據(jù)自己遇到的具體情況進(jìn)行方法選擇