如何對 git checkout 指令所建立的檔案強制自訂權限?

如何對 git checkout 指令所建立的檔案強制自訂權限?

我需要透過命令建立的文件git checkout具有自訂權限。

即使core.sharedrepository=0777設定 git 也會建立具有 0644 權限的工作樹檔案。但我希望它至少為 0664,以便該群組中的某人可以寫信給他們(指定自訂所有者群組也非常好)

遞歸地應用 chown/chmod 可能會起作用,但它聽起來像是最後的手段和資源浪費。

答案1

不要僅使用 git 來管理已安裝樹的檔案權限。

git 是單一用戶。它不追蹤足以保護多用戶系統的檔案所有權和權限。即使core.sharedrepository一個使用者的簡單樹足以滿足您的用例,您也很難讓它執行您想要的操作。可能它仍然使用預設的umask

考慮一個真正的存檔格式,可以是軟體包系統,也可以是像 tar 這樣的通用檔案。在產生檔案的腳本中取得正確的權限。

或者,執行權限修復腳本也不錯。如果需要,請在更改權限之前檢查權限,以避免對檔案元資料進行不必要的更改。


不相關的考慮因素:如果要更新此樹,請注意 git 不會同步文件,它會合併歷史記錄。理解這些 git 部署規則了解為什麼腳本編寫git pull可能是錯誤的。

相關內容