存在后续合并提交时如何撤销误操作的git merge合并提交
解决方案
你可以通过git revert命令直接撤销你那次合并提交,完全保留后续其他分支的合并内容,操作步骤如下:
- 首先确认目标合并提交ID:你错误合并的提交ID为
285d8d69a0abe17c2d6875aaee97003e206618f4,该提交为合并类型提交,包含两个父节点:- 第1父节点:合并前release分支的提交
4e5fae9a58893e05f9853d24dd71f4e140f49165 - 第2父节点:你当时合并的自有分支提交
1665c1da9fdec15a9325fa58dad25064a189f366
- 第1父节点:合并前release分支的提交
- 本地切换到最新的release分支,执行撤销命令:
git revert -m 1 285d8d69a0abe17c2d6875aaee97003e206618f4
- 参数
-m 1表示回退到该合并提交的第1父节点状态,也就是完全清除你自有分支合入的所有改动,不影响合并之后其他人的所有提交。
- 若执行过程无冲突,Git会自动生成新的撤销提交,直接推送到远程即可:
git push origin release
常见问题处理
- 若执行
git revert时出现冲突,仅需处理和你之前提交内容相关的冲突即可,不要修改其他人的改动,冲突解决完成后执行git add <冲突文件路径>,再执行git revert --continue即可完成撤销操作。 - 后续如果你需要重新把该自有分支合入release,需要先在自有分支上撤销本次revert生成的提交,否则之前的改动不会被重新识别合入。
内容的提问来源于stack exchange,提问作者Jerry Skidmore
相关产品推荐
相关产品推荐

