中止Git Merge

Sal*_*zmi 84 git git-merge

我正在使用Git作为VCS的项目.我xyz从主人的主线分支切了一个分支.工作了一段时间后,我提交了我的代码并拉了分支主线.

拉得很好.然后我将代码与master合并.合并后,某些文件出现问题.合并后我没有提交代码.有人可以指导我如何中止这个合并并将我的分支机构带到我合并之前的状态吗?

Tim*_*kle 220

只要你没有提交就可以输入

git merge --abort
Run Code Online (Sandbox Code Playgroud)

正如命令行所示.

  • 尝试以下操作时收到此消息:错误:条目'MyFile.java'不是最新的。无法合并。致命的:无法将索引文件重置为修订版“ HEAD”。 (4认同)

小智 16

如果你在发生合并冲突时执行"git status",git首先会告诉你如何中止合并.

合并冲突时输出git状态

  • 很好,这建议我“git reset HEAD <file>”,它有效地从 git 扩展源代码控制中删除了“合并”可折叠部分 => 然后我可以解决冲突,或者只是恢复我在 GIT 扩展列表中的更改:) (2认同)

小智 6

说实话,有很多很多资源解释如何在网上做到这一点:

Git:如何反向合并提交?

Git:如何反向合并提交?

https://git-scm.com/blog/2010/03/02/undoing-merges.html

所以我想我只是总结一下这些:

  1. git revert <merge commit hash>
    这会创建一个额外的"恢复"提交,说明你取消了合并

  2. git reset --hard <commit hash *before* the merge>
    此重置历史记录在您进行合并之前.如果您在合并后提交,则需要cherry-pick在之后进行.

但老实说,这里的指南比我能用图解释的任何东西都要好!:)