2012-08-31 44 views
2

我使用git來跟蹤我在不同機器上使用Kile編寫的大型LaTeX文檔。Git:將合併規則添加到特定文件的配置

Kile在關閉Kile時寫入其配置文件.kilepr。我經常碰到的問題是我在之前提交關閉Kile。所以我承諾並推送,在另一臺機器上工作,當我回來並想要拉時,我得到合併衝突,因爲.kilepr文件包含光標位置(現在明顯改變)。

我的問題:有沒有辦法爲特定文件的git config添加合併規則(總是使用- 他們的)?使用.gitignore不是一種選擇,因爲.kilepr文件包含重要信息,例如項目中的文件。

回答

1

所有可能的方式來模擬合併 - 他們在「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)。

+0

這可以在Windows和Linux('mv'命令)下工作嗎? – user334287

+0

@ user334287確定它會工作:它由msysgit包含的msys bash執行。 – VonC

0

2018解決方案:合併驅動程序

在混帳配置,你可以添加自定義合併司機:

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

,但你也可以只返回「真」的,這將始終保持局部變化的驅動程序:

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

然後在.gitattributes您可以定義文件類型使用的自定義合併司機:

/folder/**/*.fileExtension merge=keep-local-changes 
相關問題