如何制作复杂的章鱼合并?

Stu*_*ley 4 git merge

我只是从master的提示中提出了8个不同的建议,我想做一个将所有这些建议合并在一起的提交.我已经通过逐个手动解决合并冲突(然后将它们与它们一起压缩git merge --squash)完成合并,但是现在,当我尝试与章节合并提交时git merge -s ours branch1 branch2 branch3 etc,它回复Merge with strategy ours failed.如果我提交压扁的合并然后是多父提交,提交工作,但我有一个提交做某事,然后是空提交,我不希望这样.如何将合并内容提交与合并父提交相结合?

And*_*ett 7

听起来你有一棵树有正确的内容,现在你想创建一个包含该内容和正确父母的提交.我不完全确定你是如何使用git porcelains进行你想要的提交的,但是当你可以使用管道时,你可以直接使用它,如果你愿意的话.

如果您已将所有文件正确合并并在索引中,则可以使用以下命令查找树的哈希值git write-tree:

$ git write-tree
4d5fcadc293a348e88f777dc0920f11e7d71441c
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用正确的父项创建提交:

$ git commit-tree 4d5fcadc293a348e88f777dc0920f11e7d71441c -p branch1 -p branch2 ... -m "Dummy Message"
85e2a8f2f71816d17887caaf39e46225e47165a9
Run Code Online (Sandbox Code Playgroud)

并更新您的分支以指向该新提交

$ git reset --hard 85e2a8f2f71816d17887caaf39e46225e47165a9
Run Code Online (Sandbox Code Playgroud)

我通常使用虚拟消息创建提交,然后返回并使用git commit --amend以在以后填写它.

  • 非常感谢你做的这些。多年来,我一直在解决这个问题。优秀的策略。 (3认同)
  • 钱币.在未来,有没有更清洁的方法来做到这一点?似乎`-s our`应该能够解决这个问题,我无法弄清楚为什么它没有. (2认同)