首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >裸存储库权限。

裸存储库权限。
EN

Stack Overflow用户
提问于 2012-06-23 01:42:22
回答 2查看 9.4K关注 0票数 5

我在ubuntu服务器上设置了git,我将本地存储库推送到服务器上,得到了下面的错误。当我更改这两个文件夹的权限时,它可以正常工作。我只想知道为什么当我设置git init --bare时,它不能只使用它创建的权限。另外,对于这些文件夹,777是最好的权限吗?有没有更合法的方法来解决这个问题?

第一个错误:

代码语言:javascript
复制
error: insufficient permission for adding an object to repository database ./objects

第一种解决方案:

代码语言:javascript
复制
sudo chmod 777 objects/

第二个错误:

代码语言:javascript
复制
fatal: Unable to create '/srv/git/example.com.git/refs/heads/master.lock': Permission denied

第二种解决方案:

代码语言:javascript
复制
sudo chmod 777 refs/heads/
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-23 02:06:39

正在运行

代码语言:javascript
复制
$ git init --shared=0777 --bare

应该做你想做的事。

来自http://git-scm.com/docs/git-init

或者,您可以在服务器上设置一个openssh服务器,并让用户通过ssh访问此存储库。

票数 11
EN

Stack Overflow用户

发布于 2012-06-23 14:58:54

如果您想要使用777权限,这是一个非常糟糕迹象。你做错了什么。

首先,也是最重要的,正如已经建议的那样,考虑使用gitolite

如果一个或两个贡献者不太可能有超过一个或两个repos,gitolite可能看起来是一个开销,特别是如果你以前从未使用过它。(但我仍然推荐使用它。)

在我开始使用git之前,我使用this script来创建我的共享git repos。它的工作原理:

  1. 所有(特定存储库的) Git存储库用户应该在该存储库的同一个存储库中,该存储库应该属于该组。应在此目录上设置
  2. 粘滞组位(请确保不在文件上设置它),以便在用户提交内容时保留该组。
  3. Git存储库应使用--shared选项进行初始化,以使其具有组写入
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11161442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档