2012-01-24 49 views
2

我正在尋找一種方法來防止git中的某些文件逐行合併。在我的項目中,我有幾個包含其他項目生成的文件的目錄。這些文件需要成爲該存儲庫的一部分,但不能在此處進行編輯。也就是說,任何替換都已完成,並且不應嘗試部分合並/解析。我可以讓git不合並文件,但只是複製新文件

有什麼辦法可以實現這個目標嗎?

+0

你試過看子模塊嗎? – Sedrik

+0

我不確定那是我想要的。這些文件實際上並不是一個很好的模塊,它們更像是一個成品,而不是實際的源代碼。另外,任何在項目上工作的人都需要這些文件(它不是可選的)。 –

回答

1

我相信你應該使用git attributes標記文件爲二進制文件,不適合合併。根據你給的屬性,你可以讓git避免嘗試合併二進制類型(例如:* .dat binary)。您可能還想嘗試「我們的」和「他們的」合併策略。自己沒有這樣做,我不確定這些影響,但我認爲這是您應該關注的領域。

+0

我會嘗試將它們標記爲二進制。 –

2

您可以創建一個.gitattributes文件中的項目(或單個文件中所涉及的目錄)的根目錄如下:

path/to/my/file merge=theirs 

或多個文件匹配模式:

path/to/dir/*.ext merge=theirs 

這將告訴Git通過獲取傳入的版本來解決任何合併衝突。

+0

有什麼方法可以檢查日期嗎?採用最新的版本會很好。 –

+0

盡我所知,您需要編寫您自己的合併驅動程序(請參閱[gitattributes手冊頁](http://linux.die.net/man/5/gitattributes),位於「Definining一個自定義合併驅動程序「),但即使如此,我不確定您是否有權訪問提交時間戳。 – FatBusinessman

相關問題