1

我已使用以下命令将 GitHub 存储库克隆到本地计算机上的新目录中:

git clone git@github.com:*****/project.git destination-dir

克隆工作正常,但每当我尝试拉或推时,我都会返回此错误:

error: insufficient permission for adding an object to repository database .git/objects
fatal: git write-tree failed to write a tree

我做错了什么?我该如何解决这个问题。从我目前在网上阅读的内容来看,如果您使用的是自己的存储库(即不是 GitHub),那么问题是微不足道的,但是如果在 GitHub 上(没有 ssh 访问)我该怎么办。

另外,我应该补充一点,我的机器上有另一个目录指向 GitHub 上的相同存储库,这对于拉取和推送来说很好。

4

1 回答 1

0

这看起来与 GitHub 本身无关。

从您在评论中所说的来看,隐藏.git文件夹(包含所有本地 git 存储库数据)内的写入权限似乎与您运行 git 客户端时所拥有的权限不对应。

可能是您使用一个用户帐户(或使用sudo)克隆了存储库,但尝试从其他用户拉/推。如果不是这种情况,则克隆时可能会弄乱您的本地文件权限。

正如您所说,这样做chown -R login:group projectDir/解决了问题,因为它递归地重置了项目文件夹中的所有权限(包括.git文件夹及其内容的权限)。


一个好的实验是尝试将相同的 repo 克隆到不同的文件夹,以查看问题是否再次出现。如果是这样,可能是您的默认权限用户掩码和/或您的 git 客户端权限有问题。

于 2013-08-08T14:11:13.700 回答