我对解决合并冲突有一些困惑。我的本地代码似乎反映了我所做的更改,在其他地方,我的同事也做了一些更改--所有这些都是在我实际合并之前。
下面这张很小的图片简单地展示了解决冲突工具的环境:

图1
示例1
以下是解决冲突和合并之前的本地代码:

图2
下面是冲突解决工具的一个片段:

图3
这说得通。我已经删除了Braintree using语句,因此这些更改会如期而至地反映在右边。
示例2
以下是解决冲突和合并之前的本地代码:

图4
下面是冲突解决工具的一个片段:

图5
这对我来说毫无意义。图4中第775行的本地代码在冲突解决工具中读取var currentUserLicenses,如图5所示,它显示了的本地代码(右边)是vm.HasCurrentLicense,而远程代码(左边)是var currentUserLicenses。
我误会什么了?为什么在图2和图3中,我的本地代码是相同的,但是在图4和图5中,我的本地代码不是?
发布于 2018-02-01 18:44:59
混乱开始于冲突解决发生在“合并之前”的思想。它实际上是在应用了所有不冲突的更改之后,作为合并的最后一个步骤发生的。
因此,合并工具中的“目标”窗口没有显示合并前的“本地版本”。它向您展示了初步的合并结果--“我已经做了这么多,但是最后的几处更改重叠了,所以您需要澄清结果”。
就我个人而言,我不喜欢我使用过的任何基于GUI的合并工具,因为它们很难清楚地告诉我“你改变了这个,他们改变了这个,暂时的结果就是这个”。使用gits默认合并驱动程序在发生冲突的文件中放置的文本标记,我能够相当快地推断出我需要知道的四个相关版本(base、它们的、我们的、暂定的合并)。这就是对我有用的东西,是什么工具以你理解的方式提供给你的信息是由你来决定的。但是我真的会鼓励你们去发现如何看得比“源”和“目标”更多,因为我觉得当给你两个名字的观点时,信息就被遗漏了。
https://stackoverflow.com/questions/48568223
复制相似问题