我使用以下方法将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上的同一个存储库,这对拉动和推送很好。
答案 0 :(得分:0)
这看起来与GitHub本身无关。
根据您在评论中的说法,隐藏的.git
文件夹(包含所有本地git存储库数据)中的写入权限似乎与您的git客户端具有的权限不对应跑了。
可能是您使用一个用户帐户(或使用sudo
)克隆了存储库,但尝试从其他用户进行拉/推。如果不是这种情况,那么在克隆时可能会弄乱您的本地文件权限。
如您所述,正在执行chown -R login:group projectDir/
修复问题,因为它以递归方式重置项目文件夹中的所有权限(包括.git
文件夹及其内容的权限)。
一个好的实验是尝试将同一个repo克隆到另一个文件夹,以查看问题是否再次发生。如果是这样,您的默认权限usermask和/或您的git客户端权限可能出现问题。