假设我通过git存储库与某人合作,并且有一个特定的文件,我永远不想接受任何外部更改.
有没有办法让我设置我的本地仓库,以便每当我拉动时不抱怨冲突的合并?我想在合并此文件时始终选择我的本地版本.
合并Lightswitch分支时,同事通常会向我也修改过的实体添加属性,这会导致合并冲突,因为新的XML条目被添加到lsml文件中的相同位置.
我可以有效地总是通过不按特定顺序接受左右来解决这些问题,因此一个在另一个之上,因为在这些特定情况下顺序并不重要.在极少数情况下这是无效的,无论如何这会在项目中产生错误,我接受这是一种风险(但没有遇到).
有没有办法(最好是文件扩展名)让git自动接受同一位置的源和目标更改,只需将一个放在另一个之下?
将一个git分支合并到另一个git分支时,合并冲突的常见来源是我的一个XML文件,其中在两个分支上的文件的同一插入点处添加了新的(但不同的)XML.在我的情况下,我希望git在合并结果中自动包含来自两个分支的新插入的XML,并且我不关心哪个分支的更改插入到另一个上面.
是否可以配置git来执行此操作?
编辑:我发现我可以放线:
*.xml merge=union
Run Code Online (Sandbox Code Playgroud)
进入.gitattributes文件 - 但这不是我想要的方式.
在我的工作分支上说,这个XML已被添加:
<itemlist id="1">
<item id="1"></item>
</itemlist>
Run Code Online (Sandbox Code Playgroud)
然后在我打算合并到我的分支上,已添加 - 在完全相同的位置:
<itemlist id="2">
<item id="2"></item>
</itemlist>
Run Code Online (Sandbox Code Playgroud)
然后,git注意到两组更改都以相同的文本结尾(即带有结束标记的行).它似乎认为,因为双方都添加了相同的文本,它不应该在合并中复制该文本,因此它只会在合并期间插入以下内容:
<itemlist id="2">
<item id="2"></item>
Run Code Online (Sandbox Code Playgroud)
这当然导致无效的XML.
我是否可以采取进一步的配置来关闭这个"仅仅合并 - 更改 - 那些不是也在改变工作分支"选项吗?