Git:将合并规则添加到特定文件的配置中



我正在使用git跟踪一个大型LaTeX文档,该文档是我在不同的机器上使用Kile编写的。

Kile在关闭Kile时写入其.kilepr配置文件。我经常遇到的问题是在关闭Kile之前提交。因此,我提交并推送,在另一台机器上工作,当我回来想要拉时,我会遇到合并冲突,因为.kilepr文件包含光标位置(现在明显发生了变化)。

我的问题是:有没有办法为特定文件在git config中添加合并规则(总是使用——他们的)?使用.gitignore不是一个选项,因为.kilepr文件包含重要信息,例如项目中的文件。

所有模拟合并的可能方法都列在"git command for make one branch like other"中。

但对于一个文件,您只需要一个合并驱动程序,在.gitattributes文件中声明,并使用keepTheir脚本,如:

mv -f $3 $2
exit 0

有关自定义合并驱动程序(包括我自己的版本)的具体示例,请参阅"需要的git merge -s theirs——但我知道它不存在"。

2018解决方案:合并驱动程序

在git-config中,您可以添加自定义合并驱动程序:

[merge "my-custom-driver"]
    name = A custom merge driver used to resolve conflicts in certain files
    driver = my-merge-tool.sh %O %A %B

但你也可以只为驱动程序返回"true",它将始终保持本地更改:

[merge "keep-local-changes"]
    name = A custom merge driver which always keeps the local changes
    driver = true

然后在.gitattributes中,您可以定义哪些文件类型使用哪些自定义合并驱动程序:

/folder/**/*.fileExtension merge=keep-local-changes

最新更新