Git推送随机失败

时间:2010-06-27 00:09:34

标签: git repository collaboration

我正和其他两个朋友一起编码,我们都使用相同的存储库。出于某种原因,git随机地失败了,只有我。

  

错误:将对象添加到存储库的权限不足   数据库.git / objects

有趣的是,我们注意到当朋友A推送他的代码时,我不会再出现这个错误了,我也很乐意推送我的代码。现在,当朋友B突然推送他的代码时,我再次看到了这个错误。

这非常奇怪 - 我在这里想念的是什么?

2 个答案:

答案 0 :(得分:3)

可能的想法:

  • 您的git存储库未配置为 shared

  • 您的目录权限不太正确,并且根据谁创建了.git/objects的子目录,您可能拥有也可能没有写入权限。 (如果你的文件服务器被配置为不尊重目录上的组粘性位,这个问题尤其严重。我被这个问题所困扰,它仍然叮叮当当。据我所知,如果你的服务器是这样配置的,那就不可能了对于不同组中的多个用户,可以推送到单个git仓库。)

了解存储repo的操作系统和文件系统以及如何设置权限将特别有用。

答案 1 :(得分:0)

要扩展Norman Ramsey所说的关于将您的存储库配置为共享的内容:要执行此操作,请转到存储库并运行git config core.sharedRepository true。这将告诉git使它在存储库组中创建的文件可写;执行此操作后,您还应运行sudo chmod -R g+w .以确保现有文件也设置为可写组。当然,使用存储库的所有用户都必须属于拥有这些文件的组才能使用。