在git中指定merge parent

时间:2012-07-08 00:20:33

标签: git merge

我合并了两个分支(使用Eclipse合并工具)。

当我提交时,提交只有一个分支作为父级(原始工作区HEAD)。我将深入研究为什么会发生这种情况,但我现在需要正确地提交(合并中涉及很多工作)。

如何修改提交以包含对其他分支的引用?文件内容现在都很好,我只想让提交有两个父母。

1 个答案:

答案 0 :(得分:3)

首先,如果您已经提交,请运行git reset --soft HEAD^来撤消它。

方法1

MERGE_HEAD中创建GIT_DIR文件(通常为/.git),其中包含SHA-1分支的提示(您可以使用git show-ref获取)正在合并(和一个空行,只是为了模仿git merge行为)。并照常提交。

方法2

另外,如果您愿意,可以在不搞乱git内部的情况下执行此操作:

  • 保存工作目录的副本(没有.git目录)某处
  • 执行git reset --hard
  • 执行git merge branch_to_merge_with --no-commit
  • 从工作目录中删除所有内容(.git目录除外)
  • 从已保存的副本中恢复工作目录内容
  • 添加更改&提交

P.S。如果您使用git merge --squash选项或MERGE_HEAD文件以某种方式丢失,则可能会发生这种情况。