当在不同分支中修改相同文件时,git应该给我提供操作作为冲突

问题描述

让我们考虑

file.txt

aaa
bbb
ccc

在分支A中,我正在更改文件内容

file.txt

aaa-update
bbb
ccc

在分支B中,我正在更改文件内容

file.txt

aaa
bbb
ccc-update

当我将分支B合并到分支A中时,我得到的内容不足。

file.txt

aaa-update
bbb
ccc-update

但是我需要git返回修改后的操作。

类似的问题: avoid auto merging of git conflicts and warn if same files getting modified in different branches

我不确定这里是否有任何合并策略或合并驱动程序可以帮助您。

更新:我需要在软件中使用此逻辑。

解决方法

我假设该文件将始终是同一个文件(或至少是具有相同文件名模式的文件,例如匹配扩展名)。

在这种情况下,创建一个 .gitattributes file 将文件标记为二进制文件。二进制文件永远不会自动合并,合并时总是显示为冲突。

也可以只禁用一个或多个文件的合并。您可以通过取消设置 merge 属性来实现:

# example content of .gitattributes:
filename -merge
*.ext    binary