Git 是否支持仅追加文件的自动合并冲突解决?

Does Git support automatic merge conflict resolution for append-only files?

在我们的项目中,我们将本地化字符串存储在由应用程序加载的 XML 文件中。这些文件由本地化管理工具管理,我们不会直接编辑这些文件。

现在每当两个开发人员在不同的分支上添加新的本地化字符串时,他们就会产生合并冲突。在大多数情况下,只是添加了本地化字符串,因此手动合并很简单:使用一个版本,然后附加另一个版本的新字符串。

尽管这是微不足道的,但将其自动化会很好。从概念上讲,据我所知这应该是可能的。

所以我的问题是,我可以告诉 Git 对特定文件使用一种 "concatenate merge" 吗?

Git 确实支持称为 自定义合并驱动程序 的东西,您可以在其中告诉 git 如果合并对某些文件的更改发生冲突 < name.ext>,它应该 运行 一些带有参数命名基本版本、"our" 版本和 "their" 版本的外部程序,并让该程序进行合并。

This Whosebug question 显示了如何在特定文件上 运行 自定义合并驱动程序的示例。它还指出了一个可能发生的问题(但我认为不会影响您的情况):如果 git 将合并视为 "three way",则自定义驱动程序仅 运行第一名(即,您自己的分支和您 merging-in 的分支中都必须有更改)。

至于实际的 "append only" 合并驱动程序,github 上的 this one 似乎可以完成这项工作。注意:这不是我的代码,我也没有看过实际代码本身,只是描述。