前言:这不是关于合并冲突的一般问题,而是一个非常具体的案例,一直困扰着我。这是非常微不足道的,但它确实相当于一个(轻微的)麻烦,经常足以脱颖而出。我不关心一般的合并,这只是为了节省几秒钟的时间来解决非常机械的冲突,首先避免所说的冲突。我也绝对知道这不是“git问题”或类似的东西。
也就是说,假设我们有一个类的源文件:
class Xyz
...
...
def last_method
...
end
end
master
这在和几个功能分支中一开始是相同的。现在,当我们实现我们的功能时,我们向这个类添加更多方法:
分支 1:
class Xyz
...
...
def last_method
...
end
def new_method1
...
end
end
分支 2:
class Xyz
...
...
def last_method
...
end
def new_method2
...
end
end
新方法不相关,当两个分支合并回master
.
显然这会导致合并冲突。原因很清楚——我们在完全相同的位置更改了源文件,显然 git 不能(也不应该)神奇地为我们决定这不是“真正的”冲突;git 必须选择应该首先放置哪些方法,等等。
避免冲突的一种方法是在文件的不同位置插入新方法(假设顺序无关紧要),但我们真的不想花太多精力(或实际上根本不)来保持精神上的跟踪在哪里插入东西或在其他功能中发生了什么。
那么问题是:是否有另一种方式,也许是一些编码约定,你经常应用,它以某种方式避免了这种合并冲突?