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

the*_*Dmi 6 git merge git-merge

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

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

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

所以我的问题是,我可以告诉 Git 对特定文件使用一种“连接合并”吗?

tor*_*rek 6

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

此 StackOverflow 问题显示了如何在特定文件上运行自定义合并驱动程序的示例。它还指出了一个可能发生的问题(但我认为不会影响您的情况):自定义驱动程序仅在 git 首先将合并视为“三路”的情况下运行(即,必须进行更改在您自己的分支和您正在合并的分支中)。

至于实际的“仅附加”合并驱动程序,github 上的这个驱动程序似乎可以完成这项工作。注意:这不是我的代码,我也没有查看实际代码本身,只是描述。