【发布时间】:2021-10-26 11:15:06
【问题描述】:
合并拉取请求时,可能存在需要在合并之前解决的冲突。
基本上有两种方式:
- rebase on top 解决冲突
- 拉取目标分支并解决冲突
拉取方法会在合并之前在分支中导致额外的合并提交(解决冲突),我不希望这样:
可以看出,该分支有一个node B,其中包含与node A 相关的更改。我希望分支的历史记录仅包含相关更改。
如果我做一个变基,分支的历史确实只会包含相关的变化。虽然如果node B 的更改依赖于node C 引入的更改将是模棱两可的。
node B 和 node C 中的更改在逻辑上是相互独立的。他们直接修改node A。
这是node A的文件:
first line: text node A
second line to be removed later
third line: text node A
node C只修改第一行和第三行:
first line: node C text
second line to be removed later
third line: node C text
node B 只是删除了第二行:
first line: text node A
third line: text node A
虽然逻辑上我在这里看不到任何冲突(来自两个节点的更改修改了不同的行),但是 git 将无法自动解决冲突。
- 我能否解决初始拉取请求的合并提交中的更改?
- 能否首先自动解决此类冲突?
- 当更改影响不同的行时,为什么 git 会看到冲突?
我想在版本之间保持尽可能干净的 git 历史记录。观察者应该清楚哪些变化是相互依赖的,哪些不是。将独立更改直接应用到“基础”(发布提交)node A 有助于最大程度地减少主分支的突变。
【问题讨论】: