Git:添加合并规则以配置特定文件

时间:2012-08-31 16:07:15

标签: git configuration git-merge

我正在使用git来跟踪我在不同机器上使用Kile编写的大型LaTeX文档。

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

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

2 个答案:

答案 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