过去几天我在尝试制作 git status 或 git pull 时一直遇到这个问题。存储库托管在 Bitbucket 上。
尝试了几种方法来实现此功能(在 stackoverflow 上有一些与此相关的帖子,但它们没有用)。
问题是:
user@Host:/repo/$ git status fatal: index file open failed: Permission denied fatal: git status --porcelain failed
如果我执行“git pull”:
user@Host:/repo/$ git pull remote: Counting objects: 77, done. remote: Compressing objects: 100% (30/30), done. remote: Total 56 (delta 37), reused 41 (delta 22) error: insufficient permission for adding an object to repository database .git/objects fatal: failed to write object fatal: unpack-objects failed
我仔细检查了本地权限,一切似乎都很好。我有权访问所有文件。
注意:
如果我使用“sudo”,一切似乎都正常工作,但是我在该部署机器上没有任何用于 root 的 SSH 凭据。这让我觉得这是权限问题(正如错误所解释的那样),但是:如果我是所有文件的所有者,包括 .git/中的文件,它可能是什么
提前致谢!
最佳答案
通过运行 git status
得到同样的错误 fatal: index file open failed: Permission denied
,我检查了 .git/index
$ ls -al .git/index
令我惊讶的是
---------- 1 Kjuly staff 768248 Sep 2 11:07 .git/index
我不知道为什么以及如何改变。无论如何,在我通过
将其权限更改回644
之后
$ chmod 644 .git/index
git status
有效。
关于linux - Git:索引文件打开失败:权限在 "git status"上被拒绝。托管在 Bitbucket 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255785/