我有一个共享的git存储库,我们遇到了问题,推送导致错误消息“没有足够的权限将对象添加到存储库数据库./objects”
我已经在这里阅读了解决方案:Error pushing to GitHub - insufficient permission for adding an object to repository database和此处:Making git push respect permissions?并在网上搜索其他解决方案或类似问题,但没有成功。存储库未配置sharedRepository = 0660,但现在是。我也试过“组”,“真”和“全”,但他们也没有解决问题。
当我对远程存储库进行git推送时,它仍会创建访问权限为“-r - r -----”的文件。例如,ls -l输出的文件./objects/0f/87b18a145ebd187cc1e5bed9f6ea90901bc207:
-r--r----- 1 rcosta project 166 2012-07-04 20:25 87b18a145ebd187cc1e5bed9f6ea90901bc207
git配置是:
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedRepository = 0660
我使用chmod -R g+ws *
重置了文件权限。我也为访问该项目的所有其他用户完成了此操作。我不是系统的管理员,因此他们每个人都登录并执行了命令。所有用户都属于project
组。
我们通过SSH访问存储库。通过执行命令行克隆了每个成员的存储库:
git clone username@uni-server.de:/path/to/projectname.git
我对如何解决问题毫无头绪。所有文件都应具有“项目”组的所有用户的读写权限,以便每个人都可以更改并推送任何文件。
感谢您的帮助! 罗伯特。
答案 0 :(得分:0)
我会在远程仓库上运行以下命令:
git config core.filemode false
这可以防止git识别所有权/权限的变化。我在配置中看到你提供的filemode设置为true,这意味着当文件被推送到远程时,权限也被推送。
我至少会从那里开始。