Git:将对象添加到存储库数据库的权限不足

我有git错误:每次我做“git push origin master”的时候,“添加一个对象到版本库数据库的权限不够”。
我试过这里描述的解决scheme: http : //parizek.com/2011/05/git-insufficient-permission-for-adding-an-object-to-repository-database-objects/,但它只能工作,直到下一次…
有一些永久的解决scheme吗?

$ git push origin master Counting objects: 5, done. Delta compression using up to 2 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 1.19 KiB, done. Total 3 (delta 2), reused 0 (delta 0) 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://user@git.code.sf.net/p/project/code ! [remote rejected] master -> master (n/a (unpacker error)) error: failed to push some refs to 'ssh://user@git.code.sf.net/p/project/code' $ git config core.sharedRepository true $ git push origin master Counting objects: 5, done. Delta compression using up to 2 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 1.19 KiB, done. Total 3 (delta 2), reused 0 (delta 0) 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://user@git.code.sf.net/p/project/code ! [remote rejected] master -> master (n/a (unpacker error)) error: failed to push some refs to 'ssh://user@git.code.sf.net/p/project/code' $ sudo chmod -R g+ws * $ sudo chgrp -R andrey * $ git push origin master Counting objects: 5, done. Delta compression using up to 2 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 1.19 KiB, done. Total 3 (delta 2), reused 0 (delta 0) remote: <Repository /git/p/project/code.git> refresh queued. To ssh://user@git.code.sf.net/p/project/code acd82d2..f401c90 master -> master 

这是我使用的Ubuntu:12.04.1,和git:1.7.9.5

正如在“ 错误推送到GitHub – 没有足够的权限将对象添加到存储库数据库 ”中所述,除了git配置设置之外,还需要:

  • 首先设置您的所有回购umask 002umask 002 (所以在您的服务器端)
  • 然后将git组设置为rw如解决方案中所述,仍在服务器端。

这通常发生在有人嘲笑根的时候。 该进程中创建的.git / *文件受到外部更改的保护。

 chmod -R 777 .git 

是一个快速修复。