webentwicklung-frage-antwort-db.com.de

Git: Indexdatei geöffnet: Fehler beim Zugriff auf "Git-Status". Gehostet bei Bitbucket

Ich habe dieses Problem in den letzten Tagen gehabt, als ich versuchte, entweder einen Git-Status oder einen Git-Pull zu machen. Das Repository wird auf Bitbucket gehostet.

Ich habe ein paar Dinge ausprobiert, um dies zu erreichen (es gibt einige Beiträge, die sich auf stackoverflow beziehen, aber sie funktionierten nicht).

Hier ist das Problem:

 user @ Host:/repo/$ git-status 
 fatal: Indexdatei konnte nicht geöffnet werden: Berechtigung abgelehnt 
 fatal: git-status --porcelain fehlgeschlagen 

Wenn ich ein "git pull" mache:

 user @ Host:/repo/$ git pull 
 remote: Zählen von Objekten: 77, fertig .
 remote: Komprimieren von Objekten: 100% (30/30), done .
 remote: Gesamt 56 (Delta 37), wiederverwendet 41 (Delta 22) 
 Fehler: Unzureichende Berechtigung zum Hinzufügen eines Objekts zu der Repository-Datenbank .git/objects 

 fatal: Objekt konnte nicht geschrieben werden 
 fatal: Unpack-Objekte fehlgeschlagen 

Ich habe die lokalen Berechtigungen nochmals geprüft und alles scheint in Ordnung zu sein. Ich habe die Erlaubnis für alle Dateien.

Hinweis:

Wenn ich "Sudo" verwende, schien alles wie normal zu funktionieren, jedoch habe ich keine SSH-Anmeldeinformationen für root auf diesem Bereitstellungscomputer. Ich denke, es ist ein Problem mit Berechtigungen (wie der Fehler erklärt), jedoch: Was könnte es sein, wenn ich der Eigentümer aller Dateien bin, einschließlich der Dateien in .git /

Danke im Voraus!

21
demogar

Ich habe den gleichen Fehler fatal: index file open failed: Permission denied von run git status erhalten und .git/index von überprüft

$ ls -al .git/index

zu meiner Überraschung ist es so

----------  1 Kjuly  staff  768248 Sep  2 11:07 .git/index

Ich habe keine Ahnung, warum und wie sich das geändert hat. Wie auch immer, nachdem ich seine Erlaubnis wieder in 644 von geändert habe

$ chmod 644 .git/index

git status funktioniert.

28
Kjuly

Stellen Sie sicher, dass das .git-Verzeichnis und seine Dateien/Unterverzeichnisse Ihrem Benutzer gehören und beschreibbar sind. Das hört sich an, als ob das Repository entweder unter einem anderen Benutzerkonto oder als Root-Benutzer (z. B. über Sudo) geklont wurde.

Es spielt keine Rolle, wo das Remote des Repositorys gehostet wird, git status greift nur auf das lokale Repository zu.

5
knittl

Ich habe heute das gleiche Problem mit BitBucket erlebt. Hier ist die Problemumgehung, die für mich funktioniert hat:

git remote set-url Origin https://[email protected]/_my_/_repo_.git
git pull
git Push
git remote set-url Origin [email protected]:_my_/_repo_.git
0
Kmeixner