【发布时间】:2014-10-12 20:55:18
【问题描述】:
有没有办法自动合并 2 个头分支和 1 个基分支之间的冲突?
我试图在补丁级别做到这一点
VersionA 是我的基础
VersionB 从 VersionA 分支
版本 B 应用了一个额外的 mod,Base+ModB
VersionC 是从 VersionA 分支出来的
- VersionC 应用了一个额外的 mod,Base+ModC
手动应用补丁,我可以派生一个 A:B 和一个 A:C 补丁,并将它们依次应用到版本 A。但是,如果两者在它们应用的区域发生冲突(例如编辑同一区域),它们就会中断。
我尝试了各种工具,如 interdiff 和 combineiff 手动创建组合补丁,但没有成功(我在 Windows 上,interdiff 与 cygwin 兼容,但我不知道 UNC 是否是一个问题,到目前为止我不这么认为),由于 interdiff/combinediff 要求,将输出具体化为 Unified vs Contextual。
那么...有没有办法可以将版本 A 作为我的基础,并将版本 A:B && A:C 的组合更改作为我的头?并执行某种 3 向拉取请求?
如果出现任何冲突,我希望 git 能够通过臭名昭著的 >>>> 和 ===== 以及
最终,我想通过组合补丁找到一种在补丁级别上执行此操作的方法。我看到 git(hub) 有一些选项可以使用 3 路补丁和使用 git apply 和 git patch 和 git format-patch 发送补丁。
这也有帮助: Git pull gives conflicts with octopus strategy
虽然我不是从远程拉取并且拉取是在本地工作时合并(命令的工作原理几乎完全相同)。
【问题讨论】:
标签: git github merge diff patch