当我尝试推到共享git远程时,我得到以下错误: 向存储库数据库添加对象权限不足

这适用于下一次推送,因为所有的文件都属于正确的组,但下一次有人推送一个更改时,它会在对象文件夹中创建一个新项目,该项目的默认组为组。我唯一能想到的就是改变所有开发人员签入项目的默认组,但这似乎是一种hack。什么好主意吗?谢谢。


当前回答

在我的例子中,解决方案就是git再次提交。

问题自动解决了。

发生了什么事?我使用^C (Control-C)来避免写错误的提交消息。(我从错误的剪贴板中粘贴了错误的消息。)因此,我假设进程暂时冻结在后台,这暂时锁定了数据库。

其他回答

Linux、macOS:

cd .git/
sudo chown -R name:group *

其中name是用户名,group是用户名所属的组。

最简单的解决方案是:

来自项目总监:

sudo chmod 777 -R .git/objects

我遇到这个问题太多次了,但每次发生时,我都尝试使用sudo命令推送或提交,在输入密码后,我不使用sudo推送或提交 例如

sudo git commit -m "message"

然后再输入密码

git commit -m "message"

我通过使用ssh://基于URL而不是基于http://的URL解决了这个问题。

几天前,我使用基于http://的URL克隆了存储库。在克隆和推送之间,我不得不在我的帐户上启用2FA,随后将我的公钥添加到代码库中。

由于启用了2FA, http:// URL无法正常工作。

在使用git很长一段时间没有问题之后,我今天遇到了这个问题。经过一些思考,我意识到我今天早些时候把我的面具从022换成了别的东西。

其他人的所有答案都是有帮助的,例如,对有问题的目录执行chmod。但根本原因是我的新umask,每当在.git/object/下创建一个新目录时,它总是会导致一个新问题。所以,对我来说,长期的解决方案是把umask改回022。