共享远程git repo设置“-r - r -----”的权限

时间:2012-07-04 19:21:34

标签: git permissions

我有一个共享的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

我对如何解决问题毫无头绪。所有文件都应具有“项目”组的所有用户的读写权限,以便每个人都可以更改并推送任何文件。

感谢您的帮助! 罗伯特。

1 个答案:

答案 0 :(得分:0)

我会在远程仓库上运行以下命令:

    git config core.filemode false

这可以防止git识别所有权/权限的变化。我在配置中看到你提供的filemode设置为true,这意味着当文件被推送到远程时,权限也被推送。

我至少会从那里开始。