【发布时间】:2018-10-19 17:58:07
【问题描述】:
我们在项目中使用 git。非常标准的工作流程,功能分支合并回 master。遗憾的是,功能分支的变化往往比人们希望的要大(很多行发生了变化)——这会导致偶尔的冲突。
Q1:频繁提交(提交大量小更改)是否有助于自动解决 git-merge 执行的冲突?如果使用外部工具进行合并(例如 kdiff3),答案是否会改变?
理论上,如果 git-merge 可以在日志中看到小的增量变化,它就有更多信息来解决冲突。另一方面,可以想象它实际上会看到更多在最终合并中“过时”的冲突。所以:
Q2:git 在执行合并时甚至会使用有关提交历史的信息吗?
Q3:如果我们使用变基而不是合并,Q1、Q2 的答案是否会改变?
我知道,如果提交历史很长并且早期发生冲突,那么至少 rebase 会变得很糟糕。
【问题讨论】:
-
大合并变得更容易,因为我们鼓励人们进行大量小合并而不是几个大合并。合并的难度随着变化的数量而变化。