2010-03-09 42 views
3

有沒有一種簡單的方法來處理git操作中的二進制文件?在這種情況下,我認爲我的理想 - 合併.mo文件(二進制.po消息) - 將優先考慮較新的文件,並將其複製到較舊文件的頂部。如何處理二進制文件的讀取,例如.mo文件

那麼,我可以配置git來做到這一點,或者它會一直是一個手動練習嗎?

回答

3

你可以在gitattributes file添加定製合併驅動(見本SO question),只爲*.mo文件,只在相關的目錄。

echo *.mo merge=keepTheir > dirWithMoFiles\.gitattributes 
git config merge.keepTheir.name "always keep theirduring merge" 
git config merge.keepTheir.driver "keepTheir.sh %O %A %B" 

隨着keepTheir.sh爲:

mv -f $3 $2 
exit 0 
+0

這看起來像一個有趣的可能性。當我完成我現在所做的工作後,我會進行調查。 – Leo 2010-03-09 12:57:51

0

那麼最好的主意不是讓生成的文件(如.mo文件)在版本控制下。

如果你仍然想讓他們在Git中,使用標準的方式來解決衝突。

例如,你可以得到相互矛盾的文件的任一版本:

git checkout --theirs -- dir/file.mo 
git checkout --ours -- dir/file.mo 

或者使用git mergetool這將爲您衝突的文件的兩個版本。

+0

不是我正在尋找的東西 - 每天早上我會將我的更改與我的同事合併。如果他已經添加或(重新)定義的消息,我想要拿起它們而不必在本地重新生成mo文件。當然,如果我們都改變了信息,那麼我不得不重新生成信息,但這種情況發生的頻率與日食一樣多。 我想要的是讓git複製最新的文件而不用提問 - 這是一種盲目複製而不是忽略的忽略指令。 – Leo 2010-03-09 12:18:51

+0

但是,如果只有一個更改消息,則根本不應該有任何衝突。 – 2010-03-09 12:40:20