如何在GIT中禁用自动合并
其目的是在调用命令链期间,在自动合并中具有与冲突合并解决相同的行为:
$ git fetch
$ git merge some_branch
$ git mergetool最后一个命令引导我们在合并冲突的情况下进行文件的3路合并。我想有一个简单的方式来执行相同的3路合并文件,没有冲突合并。
我在网上找不到任何解决办法,是吗?
我想到了一些解决办法,但它宁愿避免。
提前谢谢你,
阿列克斯
发布于 2010-06-26 05:19:12
对于只在一方或另一方进行的更改,可以通过取消merge属性来防止自动合并(请参阅“执行三方合并”下的基属性 )。为缺少合并属性(或将其设置为“二进制”)的路径名进行的合并将离开工作树中当前分支的版本,并使路径名的索引条目处于冲突状态。
如果希望鼓励每个人都这样工作,可以将其放入.gitattributes文件并提交。如果您只想自己这样做,您可以将其放入一个未实现的.gitattributes文件中,或者将其放入存储库的$GIT_DIR/info/attributes文件(您可以随意添加/删除/重命名以启用/禁用该属性)。
# repository/.git/info/attributes
# OR
# .gitattributes
* -merge如果双方都进行了相同的更改,则即使此配置也不会引起冲突。
发布于 2010-06-26 05:16:19
诀窍是,git解决合并的方式是:
因此,即使您定义了一个合并驱动程序,它也不会启动,除非存在某种冲突。
要尝试的第一个设置是定义一个合并属性未设置
未定 将当前分支的版本作为暂定合并结果,声明合并具有冲突。这适用于不具有定义良好的合并语义的二进制文件。
您可以在.gitattributes文件中写入
* -merge,并查看这是否足以触发所有合并文件上的mergetool。
"unset“特性不是git merge的直接选项之一,原因之一是:
试图在文件级别取消3路合并并不是该合并过程的一部分(同样,在树级进行推理)。
因此,它更适合作为一个属性,该属性可以为特定的文件集设置。
https://stackoverflow.com/questions/3122056
复制相似问题