Git:使用多个单一引用合并来模拟章鱼合并

时间:2019-12-03 16:23:18

标签: git merge git-merge

我知道我可以使用git merge ref1 ref2触发章鱼合并,但是也可以使用多个命令来获得相同的结果,例如

git merge --no-commit ref1
git merge --no-commit --magic-option ref2
git commit

或之后

git merge ref1
git merge ref2

将最后2个合并提交转换为1个章鱼合并提交吗?

1 个答案:

答案 0 :(得分:3)

您可以进行单独的合并,然后使用git commit-tree创建一个新的合并修订版...如此……。

git checkout --detach brancha # so that the branch doesn't move
git merge branchb -m "Whatever"
git merge branchc -m "Whatever again"
# now we do our magic
git checkout $( git commit-tree -m "Here's the octopus merge" -p brancha -p branchb -p branchc HEAD^{tree} )
# last command creates a new revision with brancha branchb and branchc as parents, will hold the tree of the last merge.. and we check it out
# if you like it, you can move any of the branches and then check it out
git branch -f brancha
git checkout brancha