我只是从master的提示中提出了8个不同的建议,我想做一个将所有这些建议合并在一起的提交.我已经通过逐个手动解决合并冲突(然后将它们与它们一起压缩git merge --squash)完成合并,但是现在,当我尝试与章节合并提交时git merge -s ours branch1 branch2 branch3 etc,它回复Merge with strategy ours failed.如果我提交压扁的合并然后是多父提交,提交工作,但我有一个提交做某事,然后是空提交,我不希望这样.如何将合并内容提交与合并父提交相结合?
听起来你有一棵树有正确的内容,现在你想创建一个包含该内容和正确父母的提交.我不完全确定你是如何使用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以在以后填写它.