场景:在n多次提交之后发现其中某一次提交有问题,需要取消那次提交。
1.回退到有问题的提交:git reset --mixed commit-id,此命令会保留错误提交之后所做的数据变更
2.存储这些需要保留的变更:git stash
3.回退至错误提交的前一次提交,相当于删除了错误提交:git reset --hard commit-id(错误提交前一次提交)
4.取回有效的数据变更:git stash pop
5.重新提交这些有用的变更,需要分批提交的话可以add当批的文件,使用git stash -u -k存储未add的文件,到达分批提交的目的
6.git reflog可以查看你的操作记录,不用担心回退到某次提交之后无法恢复到初始状态,commit-id均可以查到