【问题标题】:Git: simulate octopus merge using multiple single ref mergesGit:使用多个单引用合并模拟章鱼合并
【发布时间】:2019-12-03 16:23:18
【问题描述】:

我知道我可以使用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 个章鱼合并提交?

【问题讨论】:

  • 请注意,git merge-octopus 使用不同的合并基础计算并拒绝执行需要解决冲突的合并,因此无论您如何执行此操作,都不一定会得到 使用带有多个哈希或分支名称的git mergegit merge -s octopus 的结果。但大多数情况下,请参阅eftshift0's answer

标签: git merge git-merge


【解决方案1】:

您可以进行单独的合并,然后使用 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

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2012-06-21
    • 1970-01-01
    相关资源
    最近更新 更多