linux - 从 GitHub pull 时的权限问题

标签 linux git github

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

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

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

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 上的同一个存储库,这对于 pull 和推送都很好。

最佳答案

这看起来与 GitHub 本身无关。

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

可能是您使用一个用户帐户(或使用 sudo)克隆了存储库,但试图从另一个用户那里 pull/推送。如果不是这种情况,克隆时可能有什么东西弄乱了您的本地文件权限。

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


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

关于linux - 从 GitHub pull 时的权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18123525/

相关文章:

linux - 无法将磁盘挂载到目录

linux - 如何在 Ubuntu Linux 中执行 CMU 二进制炸弹?

C Linux 你如何将参数传递给另一个程序?

git - 推送分支和标签时,出现错误 : cannot spawn git: no such file or directory

java - 我无法在 Jenkins 中构建工作,,,即使我已经给出了 github 的路径

git - Bitbucket 事件图

linux - 转义grep中的感叹号?

git - 将文件从一个存储库的特定提交/哈希复制到另一个(不相关)存储库

git log 两个分支,忽略其他

github 如何在我的 mac 上删除旧的 ssh key ?