原因
其中一個原因是git遠程倉庫的目錄的擁有者不在同一個group里,使得其他用戶在另一個用戶的子目錄中不能添加文件,因為兩者不在同一個組里面,然后前者就相當於這個子目錄的“其他用戶”,而不是“同組用戶”,然后“其他用戶”又沒有寫的權限,所以就出現了這個問題(“擁有者”,“同組用戶“,”其他用戶”權限可通過ls -l命令查看,參考鏈接)。
解決方案
ssh to yourServer
#進入git倉庫目錄
cd repository.git
#為同組用戶添加寫權限,並且今后倉庫中的創建的子目錄、子文件的所屬組都繼承父目錄
#-R表示遞歸處理,g+ws中的s代表setgid,即新建的文件或目錄繼承父目錄的所屬組
# * 即通配符,代表當前文件夾的所有文件和目錄(除了隱藏文件和目錄, ls -al -R好像沒看到遠程倉庫有隱藏文件)
sudo chmod -R g+ws *
#更換成適當的用戶組
sudo chgrp -R myGroupName *
git config core.sharedRepository true
其他相關命令:
id usernaeme
輸出指定用戶的user和group的相關信息
groups username
查看用戶所在的組
參考鏈接: