多人共同開發維護一個項目時,對整個項目文件互有拉取、推送等行為。為防止操作時文件權限出現沖突,可有以下2種方法解決:
1. 本地git的遠端設置中,連接遠程倉庫時多人使用同一個用戶名,該用戶名為git遠程倉庫的擁有者
2. 不同開發者需使用不同的用戶名連接時,會出現文件權限沖突,這是因為 git 倉庫使用的是對象存儲,每次改動會新增若干對象文件(具體對象文件在 /.git/objects 下),而新增的對象文件權限屬性由系統控制,默認為755,即非文件擁有着無法進行寫入(推送)。這里需要將 git 倉庫下文件的默認權限設置為同組用戶均可讀寫執行。具體方法是:
在初始化倉庫時的語法:
git init --bare --shared[=(false|true|umask|group|all|world|everybody|0xxx)]
如果倉庫已經啟用,在遠程倉庫目錄下更改 git 配置的語法:
git config core.sharedRepository [(false|true|umask|group|all|world|everybody|0xxx)]
實踐:因本人需要設置該倉庫下所有新生成的對象文件的默認權限為770,即擁有者和同組用戶擁有讀寫執行權限,代碼如下:
git init --bare --shared=0770
//初始化倉庫時
git config core.sharedRepository 0770
//已啟用后配置