3 回答

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

TA貢獻(xiàn)1825條經(jīng)驗 獲得超6個贊
注意:本文“ 為PO文件編寫git合并驅(qū)動程序 ”說明了在手動合并文件時可以執(zhí)行的操作類型:您可以對其進(jìn)行預(yù)處理,以便手動合并以準(zhǔn)備好某些數(shù)據(jù)。
git merge-file
例如,可以在合并之前使用DECRYPT(并重新加密)文件(!)
在您的情況下,以非0狀態(tài)退出合并驅(qū)動程序可確保合并將是手動合并。
- 3 回答
- 0 關(guān)注
- 2489 瀏覽
添加回答
舉報