場(chǎng)景:在n多次提交之后發(fā)現(xiàn)其中某一次提交有問題鹤树,需要取消那次提交泉蝌。
1.回退到有問題的提交:git reset --mixed commit-id铲咨,此命令會(huì)保留錯(cuò)誤提交之后所做的數(shù)據(jù)變更
2.存儲(chǔ)這些需要保留的變更:git stash
3.回退至錯(cuò)誤提交的前一次提交洛姑,相當(dāng)于刪除了錯(cuò)誤提交:git reset --hard commit-id(錯(cuò)誤提交前一次提交)
4.取回有效的數(shù)據(jù)變更:git stash pop
5.重新提交這些有用的變更,需要分批提交的話可以add當(dāng)批的文件婶芭,使用git stash -u -k存儲(chǔ)未add的文件东臀,到達(dá)分批提交的目的
6.git reflog可以查看你的操作記錄,不用擔(dān)心回退到某次提交之后無(wú)法恢復(fù)到初始狀態(tài)犀农,commit-id均可以查到