我们都知道万一提交错了代码,想要删除又想准确无误怎么办呢?下面介绍两种方式,看是否有适合你的呢
git删除指定commit
- 使用git log 命令,查看已提交的记录。例如红色圈出的commit是本次要删除的commit。
先找到此次提交之前的一次提交的commit 1d6b81b138f89735265900b94fcd1ec39375e7b4
执行git rebase -i 1d6b81b138f89735265900b94fcd1ec39375e7b4,弹出如下页面(不包含当前commit):
按字母I键进入编辑模式,将需要删除的commit的pick改为drop,然后按esc退出编辑,:wq保存
- 再次执行git log命令,查看已提交记录,之前红色圈出的commit记录已被删除。
PS:以上方法不适用特定merge提交删除
优雅撤销中间某次merge提交
git revert commit_id
//如果commit_id是merge节点的话,-m是指定具体哪个提交点
git revert commit_id -m 1
//接着就是解决冲突
git add -A
git commit -m ".."
git revert commit_id -m 2
//接着就是解决冲突
git add -A
git commit -m ".."
git push
其中git revert commit_id -m 数字
是针对,merge
提交点的操作。
如果是普通的提交点,直接用rebase即可,不需要这么麻烦。