git如何禁止同一文件的自动合并?

合并分支时,如远端分支同事在文件a头部新增了一行,我本地在文件a尾部删除了一行。当我们合并时git很智能,不会提示人工的merge,因为我们是不同行,…
关注者
9
被浏览
9,213

2 个回答

git merge --edit,使用alias设定merge为merge --edit。

git无法强制限制本地的修改,merge是个本地的操作。

这个属于git的merge算法的问题。

显然git是不理解代码逻辑的。所以只能简单的基于改动行的位置去判断如何merge。这种办法在大多数情况下是工作的。

除了你说的这种情况,还有很多可能导致合并引入新问题。比如你的同事给抽象类加了一个新方法,同时你新写了一个该抽象类的继承类。如果只是做merge,必定引入编译问题。

现在的技术应该是做不到自动解决的,所以只能是我们做合并完了后,再review一下。分析别人的改动和自己的改动是否会相互影响,手动解决代码逻辑上的问题。

为什么?