我正在使用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