2010-05-27 106 views
7

當二進制文件,swfs,jars和flvs在本地發生更改時,我試圖引入更改,git會嘗試合併它們並報告衝突。告訴git不要合併二進制文件,但要選擇

然後,我分支到一個臨時分支,並提交本地更改的二進制文件,並在遞歸他們的策略之後將它們合併回來。 - 太多工作。

有沒有辦法告訴git,而不是嘗試合併二進制文件,並問我使用哪一個版本。

回答

6

你可以建立一個.gitattributes文件合併驅動器(僅在給定的子樹,只對某些文件類型)

this question例如(或this one)。

# choose the name of the merge driver to be use for all jar files 
echo *.jar merge=keepTheir > dirWithJarFiles\.gitattributes 

聲明你的合併司機在混帳回購協議的配置:

git config merge.keepTheir.name "always keep their during merge" 
git config merge.keepTheir.driver "keepTheir.sh %O %A %B" 

git config merge.keepMine.name "always keep mine during merge" 
git config merge.keepMine.driver "keepMine.sh %O %A %B" 
[merge "keepMine"] 
     name = always keep mine during merge 
     driver = keepMine.sh %O %A %B 

我給不問你一個選擇,但將始終保持的例子「我的」(或「你的」)版本合併。
但是,您可以調整此合併驅動程序執行的腳本以詢問您一個問題,然後將您的選擇應用於所有合併。