2

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

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

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

4

1 回答 1

3

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

方法一

在(通常)中创建MERGE_HEAD文件,其中包含要合并的分支的尖端(您可以使用它来获取它)(以及一个空行,只是为了模仿行为)。并像往常一样提交。GIT_DIR/.gitSHA-1git show-refgit merge

方法二

此外,如果您愿意,您可以在不弄乱 git 内部结构的情况下做到这一点:

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

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

于 2012-07-08T00:40:52.363 回答