Git多分支开发过程中处理冲突的经验教训


最近在项目开发中遇到一个问题,不同分支的代码产生大量冲突,导致合并麻烦。这也算是一个教训。值得记录下来反思。

不同分支代码的冲突问题

已上线分支为 master,我负责的分支为 A,另外有人负责的分支是 B,恰恰因为项目需求的原因,A 和 B 分支上的某个类会被我们同时改动。由于master分支上线的缘故,第二天我需要在自己的A分支上去合并已上线分支master的代码。这时候,出现了问题:我的A分支上有从别人的B分支上合并过来的代码(是必须要的),这个B分支的人居然全选了整个类几千行代码(这个项目有点老,代码质量很差,说成又臭又长也不为过)进行了格式化,因此和已上线的master分支的代码产生大量冲突,我合并的时候需要挨个比对这个类中自己的代码、B分支的代码和master分支的代码,非常耗时,而且容易出错。

解决方案与反思

这个问题让我学到了经验,那就是:遇到大型项目,有多个分支且已经产生需求冲突的时候,一定要把自己的那部分代码以面向对象的方式,独立出来,在不同分支都会共同修改的那个类中,在关键部分以方法调用的形式来加入自己的逻辑。这样,可以减少冲突,把自己的代码逻辑独立出来作为新的类,就不会与别人代码冲突。