我維護一個回購叉。在git中跟蹤sqlite3二進制文件的正確方法?
那個已經跟蹤二進制文件(這是一個sqlite3文件)的回購。
每次我從該回購中拉出時,都會遇到由於該二進制文件而導致的合併衝突。
解決這種合併衝突的正確方法是什麼?
在git中管理二進制文件(如sqlite3 * .db文件)的正確方法是什麼?
我維護一個回購叉。在git中跟蹤sqlite3二進制文件的正確方法?
那個已經跟蹤二進制文件(這是一個sqlite3文件)的回購。
每次我從該回購中拉出時,都會遇到由於該二進制文件而導致的合併衝突。
解決這種合併衝突的正確方法是什麼?
在git中管理二進制文件(如sqlite3 * .db文件)的正確方法是什麼?
您可以在當前版本的頂部定義一個自定義合併驅動程序,指定爲always "keep theirs"(複製正在拉動的版本)。
.gitattributes
mysqlite3.db merge=keepTheir
(話雖這麼說,記得binaries aren't always best managed with Git,特別是如果他們經常修改)
我已經發布了一個工具,做你問什麼。它使用一個自定義比較驅動程序,利用sqlite項目工具'sqldiff',UUID作爲主鍵,並離開sqlite rowid。它仍然在阿爾法,所以反饋表示讚賞。
我不能找到.gitattributes。我必須在$ GIT_DIR/info/attributes中創建一個文件嗎? – 2011-03-25 16:24:52
@shadyabhi:不需要,你必須在你希望應用的東西的父目錄(可能是你的項目的頂層)創建一個名爲'.gitattributes'的文件,就像使用'.gitignore'一樣。 '$ GIT_DIR/info/attributes'只適用於你特定的回購克隆,而不是其他的,因爲它明顯沒有跟蹤。 – Cascabel 2011-03-25 16:30:51
@shadyabhi:這個問題http://stackoverflow.com/questions/1910444/git-merge-s-theirs-needed-but-i-know-it-doesnt-exist/1910479#1910479給你一個更詳細的例子。 – VonC 2011-03-25 16:32:32