3 回答

TA貢獻1846條經驗 獲得超7個贊
選項5,自定義合并驅動程序,可能是最接近您想要的方式。這很容易做到。下面是一個我認為應該讓你非常接近你想要的行為的例子。
首先,創建一個名為合并驅動程序的腳本merge-and-verify-driver
。使其可執行并將其放在合適的位置(您可能需要考慮將此腳本檢入到repo中,因為repo的配置文件將取決于它)。Git將執行此shell腳本來執行敏感文件的合并:
#!/bin/bashgit merge-file "${1}" "${2}" "${3}"exit 1
這只是Git本身通常執行的默認合并行為。關鍵區別在于腳本始終返回非零(表示存在沖突,即使實際已解決合并而沒有沖突)。
接下來,您需要告訴Git您的自定義合并驅動程序是否存在。你在repo的配置文件(.git/config
)中執行此操作:
[merge "verify"] name = merge and verify driver driver = ./merge-and-verify-driver %A %O %B
在這個例子中,我已經放入merge-and-verify-driver
了repo的頂級目錄(./
)。您需要相應地指定腳本的路徑。
現在,您只需要為敏感文件提供適當的屬性,以便在合并這些文件時使用自定義合并驅動程序。將其添加到您的.gitattributes
文件中:
*.sensitive merge=verify
在這里,我告訴Git,任何名稱與模式匹配的文件*.sensitive
都應該使用自定義合并驅動程序。顯然,您需要使用適合您的文件的模式。

TA貢獻1825條經驗 獲得超6個贊
注意:本文“ 為PO文件編寫git合并驅動程序 ”說明了在手動合并文件時可以執行的操作類型:您可以對其進行預處理,以便手動合并以準備好某些數據。
git merge-file
例如,可以在合并之前使用DECRYPT(并重新加密)文件(?。?/p>
在您的情況下,以非0狀態退出合并驅動程序可確保合并將是手動合并。
- 3 回答
- 0 關注
- 2540 瀏覽
添加回答
舉報