1、修改但沒有add的文件,進行丟棄:執(zhí)行 git checkout ./
2、已經add的文件胆筒,進行丟棄:執(zhí)行git restore --staged 修改的文件(路徑) && git checkout ./ 或者 git rm --cached xxx文件名xxx git rm
3、已經commit的文件诈豌,進行丟棄:執(zhí)行 git reset --soft HEAD^ && git restore —staged 修改的文件(路徑) && git checkout ./
HEAD^的意思是上一個版本仆救,也可以寫成HEAD~1
如果你進行了2次commit抒和,想都撤回,可以使用HEAD~2
--mixed
意思是:不刪除工作空間改動代碼彤蔽,撤銷commit构诚,并且撤銷git add . 操作
這個為默認參數(shù),git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一樣的。
--soft
不刪除工作空間改動代碼铆惑,撤銷commit范嘱,不撤銷git add .
--hard
刪除工作空間改動代碼,撤銷commit员魏,撤銷git add .
注意完成這個操作后丑蛤,就恢復到了上一次的commit狀態(tài)。
如果commit注釋寫錯了撕阎,只是想改一下注釋受裹,只需要:git commit --amend,此時會進入默認vim編輯器虏束,修改注釋完畢后保存就好了棉饶。
git log 查看所有的commit提交記錄;
Git reflog 查看提交記錄镇匀,包含提交分支照藻、撤回和修改的提交記錄,比git log更全面汗侵;
git show 查看提交的詳情幸缕;
4、已經push到遠程的晰韵,進行丟棄或回退:
執(zhí)行 git reset --soft HEAD^ && git restore --staged 修改的文件(路徑) && git checkout ./
注:當然每種丟棄或者撤回還有其他不同情況和方法发乔,大家可以根據(jù)自己遇到的具體情況進行適當選擇