135

每次我进行“git pull origin develop”时,我都有 git 错误:“将对象添加到存储库数据库 .git/objects 的权限不足”。

    remote: Counting objects: 70, done.
    remote: Compressing objects: 100% (7/7), done.
    remote: Total 42 (delta 35), reused 42 (delta 35)
    error: insufficient permission for adding an object to repository database     .git/objects

    fatal: failed to write object
    fatal: unpack-objects failed
4

5 回答 5

298

假设@ChrisHayes 对意外的 sudo 是正确的,这应该可以解决它。从您的存储库内部:

sudo chown -R $USER:$USER "$(git rev-parse --show-toplevel)/.git"

更新:对于那些遇到illegal group name错误的人,试试这个:

sudo chown -R $(id -u):$(id -g) "$(git rev-parse --show-toplevel)/.git"
于 2013-11-05T23:20:31.410 回答
24

转到项目的根目录并运行以下命令来解决此问题,

cd .git/objects
sudo chown -R yourname:yourgroup *
于 2018-03-22T11:10:29.077 回答
3

我的是一个愚蠢的错误......设置了正确的用户名和组,但 www-data 是访问它的帐户。该目录归 vaindil:www-data 所有,但权限为 755,因此 www-data 无法写入。修复它:

$ sudo chmod -R 775 /path/to/repo
于 2016-10-24T18:20:36.017 回答
0

不是一个好的做法(只是一种选择)

我正在使用 Ubuntu 并面临同样的问题。为了解决它,我只是将用户切换到 root 并且我没有看到进一步的错误。

$su
password

然后,

$git pull origin master

推荐方式:更改目录的权限

于 2016-03-02T11:20:21.083 回答
0

如果您尝试从 github 克隆公共存储库,请从 url 中删除 .git。

例子:

来自:https ://github.com/example/repository.git 至:https ://github.com/example/repository

于 2018-11-29T04:31:59.420 回答