我正和其他两个朋友一起编码,我们都使用相同的存储库。出于某种原因,git随机地失败了,只有我。
错误:将对象添加到存储库的权限不足 数据库.git / objects
有趣的是,我们注意到当朋友A推送他的代码时,我不会再出现这个错误了,我也很乐意推送我的代码。现在,当朋友B突然推送他的代码时,我再次看到了这个错误。
这非常奇怪 - 我在这里想念的是什么?
答案 0 :(得分:3)
可能的想法:
您的git存储库未配置为 shared 。
您的目录权限不太正确,并且根据谁创建了.git/objects
的子目录,您可能拥有也可能没有写入权限。 (如果你的文件服务器被配置为不尊重目录上的组粘性位,这个问题尤其严重。我被这个问题所困扰,它仍然叮叮当当。据我所知,如果你的服务器是这样配置的,那就不可能了对于不同组中的多个用户,可以推送到单个git仓库。)
了解存储repo的操作系统和文件系统以及如何设置权限将特别有用。
答案 1 :(得分:0)
要扩展Norman Ramsey所说的关于将您的存储库配置为共享的内容:要执行此操作,请转到存储库并运行git config core.sharedRepository true
。这将告诉git使它在存储库组中创建的文件可写;执行此操作后,您还应运行sudo chmod -R g+w .
以确保现有文件也设置为可写组。当然,使用存储库的所有用户都必须属于拥有这些文件的组才能使用。