1、修改但沒有add的文件,進行丟棄:執行 git checkout ./
2、已經add的文件,進行丟棄:執行git restore --staged 修改的文件(路徑) && git checkout ./ 或者 git rm --cached xxx文件名xxx git rm
3、已經commit的文件,進行丟棄:執行 git reset --soft HEAD^ && git restore —staged 修改的文件(路徑) && git checkout ./
HEAD^的意思是上一個版本,也可以寫成HEAD~1
如果你進行了2次commit,想都撤回,可以使用HEAD~2
--mixed
意思是:不刪除工作空間改動代碼,撤銷commit,并且撤銷git add . 操作
這個為默認參數,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一樣的。
--soft
不刪除工作空間改動代碼,撤銷commit,不撤銷git add .
--hard
刪除工作空間改動代碼,撤銷commit,撤銷git add .
注意完成這個操作后,就恢復到了上一次的commit狀態。
如果commit注釋寫錯了,只是想改一下注釋,只需要:git commit --amend,此時會進入默認vim編輯器,修改注釋完畢后保存就好了。
git log 查看所有的commit提交記錄;
Git reflog 查看提交記錄,包含提交分支、撤回和修改的提交記錄,比git log更全面;
git show 查看提交的詳情;
4、已經push到遠程的,進行丟棄或回退:
執行 git reset --soft HEAD^ && git restore --staged 修改的文件(路徑) && git checkout ./
注:當然每種丟棄或者撤回還有其他不同情況和方法,大家可以根據自己遇到的具體情況進行適當選擇