gpt4 book ai didi

Github)3路 merge ,补丁

转载 作者:行者123 更新时间:2023-12-04 16:49:37 27 4
gpt4 key购买 nike

有没有办法自动 merge (interdiff)2 个头分支和 1 个基分支之间的冲突?

我试图在补丁级别做这件事

  • 版本A是我的基础

  • VersionB 是 VersionA 的分支

  • VersionB 应用了一个额外的 mod,Base+ModB

  • VersionC 是 VersionA 的分支

  • VersionC 应用了一个附加模组,Base+ModC

手动应用补丁,我可以派生一个 A:B 和一个 A:C 补丁,然后将它们按顺序应用到版本 A。但是,如果两者在它们应用的区域发生冲突(例如编辑同一区域),它们就会中断。

我尝试了各种工具,如 interdiff 和 combinediff 来手动创建组合补丁,但没有成功(我在 Windows 上,interdiff 与 cygwin 兼容,但我不知道 UNC 是否是一个问题,到目前为止我不这么认为),由于 interdiff/combinediff 要求,将输出具体化为 Unified vs Contextual。

那么...有没有一种方法可以将版本 A 作为我的基础,并将版本 A:B && A:C 的组合更改作为我的头部?并进行某种 3 向 pull 请求?

如果出现任何冲突,我希望 git 能够通过臭名昭著的 >>>> 和 ===== 和 <<<<< merge 冲突来智能地解决它们,这在这一点上是完全可以接受的.

最终,我想找出一种通过组合补丁在补丁级别上执行此操作的方法。我看到 git(hub) 有一些选项可以使用 3 路补丁和通过 git apply 和 git patch 以及 git format-patch 通过电子邮件发送补丁。

这也有帮助: Git pull gives conflicts with octopus strategy

虽然我不是从远程 pull 并且在本地工作时 pull 是 merge (命令的工作原理几乎完全相同)。

最佳答案

最接近的是 Octopus merge (多个 HEAD 的 merge ):

git merge B C

请注意顺序可能很重要:“Git octopus merge order of multiple branches ”。


OP thistleknot添加 in the comments :

The merge didn't work initially until I figured I had branched off a common ancestor at the "wrong point" more or less.
I didn't know it until I looked at the merge*.* output files and saw each merge file was a source file. One from Version B and Version C and the common ancestor of B and C. Once I figured that out, I was able to do some more branching magic, and the merge worked, with the <<< and ====

关于Github)3路 merge ,补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com