有没有办法部分解决 git 合并冲突,而其余部分未解决?

问题描述 投票:0回答:1

我正在开发一个工具来自动解决 git pull 请求中的合并冲突。它通过本地克隆存储库、合并两个分支、然后遍历每个未合并的路径并在可能的情况下用建议的解决方案替换冲突区域来实现此目的。然后它创建一个新的 PR 将这些解决方案合并到功能分支中。

我的问题是这个工具不能保证100%的冲突得到解决。在这种情况下,我希望它保留未解决的冲突,以便开发人员可以进入并手动修复它们。理想情况下,我希望能够推动解决方案并使 Git 将其余文件显示为未合并。

但是,问题是,当我的工具使用提议的解决方案创建新的 PR 时,git 不再认为还存在冲突。我想知道是否有办法解决这个问题,以便 git 认为我只解决了一些冲突,而不是全部?

我当前的方法执行以下操作:

  • 功能分支合并到目标分支并解决所有可能的冲突:
# On feature branch
git checkout feature-branch
git merge dest-branch
# resolve all possible conflicts, but not necessarily all
git push --force

如果冲突无法解决,则通过保留我们的一方来“崩溃”(注意:我认为这是有问题的,因为它使 git 认为我仅通过保留“我们的”一方解决了冲突)。

  • 解决方案被推送到新分支,该工具会创建一个 PR 将它们合并到功能分支中
  • 合并此 PR 后,git 不再显示任何冲突,即使该工具没有解决所有冲突。
git
1个回答
0
投票

一种方法是,在现有提示上进行飞行中合并侧分支提示,两个提示上的任何分辨率以及各自我们或他们的内容作为每个提示上的“分辨率”。

另一种方法:将部分合并结果提交到部分合并分支上,每个团队独立一个,用“我们也不知道这里正确的解决方案”标记替换他们不知道正确结果的任何内容。 然后合并所有部分合并并采用不是〜耸肩〜标记的版本。

© www.soinside.com 2019 - 2024. All rights reserved.