error: insufficient permission for adding an object to repository database ./objects
fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To ssh://<repo url>/<repo dir>
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'ssh://<repo url>/<repo dir>'
我以前偶尔遇到过这个问题,我们总是不得不通过每个用户通过ssh访问仓库,并在其中的所有文件上设置组权限来解决它。
chmod -R g+w *
这从来都不是一个令人满意的解决方案,现在它给我们带来了麻烦,因为其中一个人不在,没有人知道他的仓库用户密码。所以,我正在尝试正确解决这个问题。
错误似乎发生在有人试图推送一个将改变由另一个用户拥有的仓库目录的更改时(因此在上面设置了组写入选项)。我在这方面做了一些谷歌搜索,并找到了几种正在讨论的解决方案(但对我都没有起作用)。
1. 确保仓库目录共享的组是每个用户的主要组(我相信这已经是这样了:每个用户只有一个组,所以那一定是他们的主要组,对吗?) 2. git仓库的core.sharedRepository设置,详见这里:Git: Can't push from one computer 我已经更改了这个设置,但没有任何改变。我需要重新加载配置或者做些其他操作才能生效吗?
这是我目前的仓库配置:
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedRepository = all
[receive]
denyNonFastForwards = True
非常感谢任何建议或建议! Max
.GIT
(大写)的目录,我总是可以得到它。 - Ciro Santilli OurBigBook.com