我正在使用git来跟踪我在不同机器上使用Kile编写的大型LaTeX文档。
Kile在关闭Kile时写入.kilepr
配置文件。我经常遇到的问题是我在之前关闭Kile。所以我提交并推送,在另一台机器上工作,当我回来想要拉动时,我得到一个合并冲突,因为.kilepr
文件包含光标位置(现在显然已经改变了)。
我的问题:有没有办法为特定文件添加合并规则到git config(总是使用 - 他们的)?使用.gitignore
不是一个选项,因为.kilepr
文件包含重要信息,例如项目中的文件。
答案 0 :(得分:2)
“git command for making one branch like another”中列出了模拟合并的所有可能方法。
但对于一个文件,您只需要一个合并驱动程序,在.gitattributes
文件中声明,并带有keepTheir
脚本,如:
mv -f $3 $2
exit 0
有关自定义合并驱动程序(包括“git merge -s theirs
” needed — but I know it doesn't exist)的具体示例,请参阅“my own version”。
答案 1 :(得分:1)
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