在GitHub中,我如何在PR中进行双向合并,使目标分支中没有在源分支中显式删除的任何行都不会被删除?
我附上了一个显示问题的GitHub公关屏幕截图。
作为公共关系的一部分,我想:
(1)将更改的行从源分支(右)排列到目标分支(左);
(2)维护目标分支(左)中没有在源分支中显式删除的任何行(右)
问题是,GitHub似乎只是删除了源分支(左)中没有包含在目标分支(右)中的任何行,而我想将组合合并在一起。
如果这在GitHub中是不可能的,那么是否有一个工具可以与GitHub集成来完成这种双向合并?
谢谢。
发布于 2022-01-21 22:38:46
GitHub使用libgit2进行合并,其工作方式与Git的合并方式类似,但不完全相同。在这两种情况下,合并都是一个三方合并,它同时考虑两个头和一个称为合并基的提交,这通常是最近的共同祖先。删除被认为是一种更改,因此包括在内。
没有办法让GitHub进行双向合并。如果您想要这种行为,就必须有一个自定义工具(例如,bot)来执行合并并将提交推到目标分支。只要结果提交包含父分支的对象ID作为提交之一,PR就会自动关闭。
在git read-tree中,Git确实有一个双向合并。我不确定它是否提供了您想要的语义,但这是它提供的唯一的双向合并。如果将这些数据读入索引中,则可以使用git write-tree和git commit-tree来合成合适的合并提交。
可能是为了获得您想要的语义,您需要一个自定义的合并工具。但是,如果您提供了更多关于该工作流的信息,我们可以提出这样的解决方案,通过使用更优雅的Git工作流程,您的目标就更有可能实现。
https://stackoverflow.com/questions/70807983
复制相似问题