git push到遠程倉庫時出現Git Push Error: insufficient permission for adding an object to repository database


原因

其中一個原因是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 查看用戶所在的組

參考鏈接:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM