Git:索引文件打开失败:"git status"上的权限被拒绝.在Bitbucket上主持

dem*_*gar 24 linux git bitbucket

在过去的几天里,我一直在尝试制作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 /中的文件

提前致谢!

Kju*_*uly 33

fatal: index file open failed: Permission denied通过运行得到相同的错误git status,我检查.git/index

$ ls -al .git/index
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,它是

----------  1 Kjuly  staff  768248 Sep  2 11:07 .git/index
Run Code Online (Sandbox Code Playgroud)

我不知道为什么以及如何改变.反正,我改变后的许可回644

$ chmod 644 .git/index
Run Code Online (Sandbox Code Playgroud)

git status 作品.


pre*_*mod 6

我遇到了同样的问题,想知道可能是什么原因..环顾四周,思考我在做什么以及什么接触了文件系统和工作目录 - 我怀疑这些文件是由 IDE 用一些命令打开的锁,当我在终端 git 中执行合并和更改分支时。关闭IDE,关闭shell,git pull正常,没有错误消息。我在系统中没有进行任何用户更改,因此我认为文件锁定或 IDE 在幕后使用 git 存储库“为我”执行的操作是原因。希望这对某人有所帮助。如果您遇到同样的问题并且想要弄清楚问题的根源(而不仅仅是修复它),请问自己“谁/什么可能会接触并更改我的 .git 和工作目录的文件所有权”?就我而言,嫌疑人是 Microsoft Visual Studio。我认为远程回购类型的调查和操作只是转移注意力和伤口敷料(或核选择),没有触及问题的症结所在。


kni*_*ttl 5

确保.git目录及其文件/子目录由用户拥有和写入.这听起来像存储库是在不同的用户帐户下克隆的,或者是root用户(例如,通过sudo).

托管存储库的远程位置无关紧要,git status仅访问本地存储库.