Git合并冲突无法检测到逻辑合并冲突/错误,对吗?

时间:2019-11-18 19:36:17

标签: git

我看到当两个分支更改同一行代码时发生冲突。因此,我想可能是两个人编辑了同一文件而彼此都不知道更改,并且由于更改不在同一行中,因此git在合并过程中允许它通过,但是可能引入了逻辑错误?

3 个答案:

答案 0 :(得分:2)

是的。

Git合并冲突是文本编辑冲突,无法确定合并版本中要采用两个更改中的哪个。

仍然可能存在代码含义/意图的逻辑“冲突”。 Git无法理解所做的修改。

两个开发人员独立工作的简单示例:

  • Dev A删除未使用的方法。
  • Dev B在其他地方添加了相同方法的新用法。

Git不会编译/执行代码,仅通过合并文本代码就无法知道存在逻辑冲突。

答案 1 :(得分:0)

是的。 Git只是组织版本并帮助异步开发。它不会编译或测试您的代码。相反,您可以创建一些在提交之前运行的测试。

答案 2 :(得分:0)

自动合并不可靠;结果必须经过审查和测试。

在许多情况下,通过检查可以明显看出两个变化是完全不相关的。

例如,串行UART驱动程序中某个循环中的逐个修补程序几乎肯定与USB堆栈中竞争条件的修补程序无关,因此您不必为某种语义而考虑这些问题冲突。

通常,自动合并是我们可以撰写有关“不合理有效性”文章的工具之一。