Helfen Sie mir bitte, ich versuche dies in meinem Terminal auszuführen:
asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied
Dann versuche ich diesen
asgard@asgard-A7N8X2-0:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Hilf mir, ich verstehe dieses Problem nicht.
sudo
hilft hier wahrscheinlich überhaupt nicht, da es Zugriff auf Ihre SSH-Schlüssel benötigt (nicht auf Roots).Antworten:
Es scheint, dass der erste nicht funktioniert, weil Ihr Benutzer nicht über die Berechtigungen zum Ändern dieses Verzeichnisses verfügt, und der zweite, weil Ihr Root-Benutzer nicht über die richtigen SSH-Schlüssel für den Zugriff auf dieses Git-Repository verfügt.
Je nachdem, was Sie versuchen, ist es möglicherweise besser, das Repository in ein anderes Verzeichnis oder in
chown
das aktuelle Verzeichnis zu klonen , um vollen Zugriff für Ihren Benutzer zu erhaltenquelle
www-data
Benutzer die Berechtigung zum Aktualisieren des.git
Verzeichnisses erteilen kann . Ich rufe das Shell-Skript mit PHP über http im Browser auf. Details hiersudo su
und als Root in einem Repo fungieren. Ein einfachessudo chown -R <username> .
in diesem Verzeichnis wirkt magisch!Überprüfen Sie, ob Sie über genügend Berechtigungen für das verfügen
.git/
Verzeichnis . Sie sollten Schreibrechte haben. Sie können sie mit dem folgenden Befehl einstellen.Gehen Sie zu Ihrem Projektordner:
quelle
chown: youruser: Invalid argument
chown -R youruser .git/
chown
.git/
und seinen übergeordneten Ordner, damit es funktioniertchown
nicht funktioniert, dann führen Sie auch diesen Befehl aussudo chmod 0777 -R .git/
Wenn Sie der Gruppe die Berechtigung erteilen möchten,
hat am besten für mich funktioniert.
Für MacOS
quelle
Dies ist ein UNIX-Berechtigungsproblem. Nicht
sudo
zum Klonen des Repositorys verwenden. Sie haben nicht die gleichen SSH-Schlüssel wie root und sollten sowieso nicht als root arbeiten. Versuchen Siels -la
, die Berechtigungen für die Dateien zu finden und sie mitchmod
(odersudo chown
) zu reparieren. Hoffentlich hilft das.quelle
sudo clone
gestoßen, weil ich es tun musste, um die neue Lizenzvereinbarung von XCode zu akzeptieren. Die Antwort ist, die Vereinbarung zu akzeptieren und dann ohne Sudo zu klonen.In meinem Fall funktioniert es gut danach:
quelle
Die Antwort auf dieses Problem stellt sicher, dass .git / FETCH_HEAD über Schreibrechte verfügt und Sie fertig sind.
Ich hatte dieses Problem unter Windows und es wurde durch Erteilen von Schreibberechtigungen behoben.
Unter Unix kann man
chmod a+rw .git/FETCH_HEAD
vom Projekt-Repository aus ausführen, wonach es funktionieren soll.quelle
.git/FETCH_HEAD
alleine, wenn das Berechtigungsproblem aktiviert ist.git
.Versuchen Sie es so,
Schritt 1: Überprüfen Sie zuerst, wer Sie sind? Es wird der aktuelle Benutzername zurückgegeben, z. B. Ubuntu
Schritt 2: Legen Sie dann die Berechtigung für Ihren aktuellen Benutzer fest, in diesem Fall ubuntu by
quelle
In meinem Fall hatte ich nur Lesezugriff auf die Datei .git / FETCH_HEAD. Ich musste "sudo chmod g + w .git / FETCH_HEAD" ausführen, um eine Pull-Anfrage ausführen zu können.
quelle
.git/FETCH_HEAD
alleine, wenn das Berechtigungsproblem aktiviert ist.git
.sudo chmod g+w .git/FETCH_HEAD
sudo chmod g+w .git/FETCH_HEAD
, perfekte Lösung.Ich hatte das erste Problem (FETCH_HEAD-Berechtigung verweigert) unter Windows.
Ich habe es behoben, indem ich Git Bash als Administrator ausgeführt habe (Rechtsklick, als Administrator ausführen).
quelle
Wenn Sie sich nicht zu der Gruppe hinzugefügt haben, die Sie besitzen
.git/
, sollten Sie dies tun.Was dies tut:
.git/
und fügt Ihren Benutzer dieser Gruppe hinzu..git/
..gitignore
, was Sie wahrscheinlich brauchen werdenWenn Sie erst kürzlich so etwas getan haben (Sie haben sich der Gruppe hinzugefügt, der Sie gehören
.git/
), müssen Sie sich abmelden und wieder anmelden, bevor Sie.git/FETCH_HEAD
während Ihres Aufenthalts schreiben könnengit pull
.quelle
Legen Sie die Berechtigung für Ihren aktuellen Benutzer fest, indem Sie den Befehl ausführen
$ sudo chown -R <username> .git/
quelle
Gehen Sie einfach in Ihren Stammordner und führen Sie diesen Befehl aus:
quelle
Unter Windows 7 lag dieses Problem daran, dass ich den Ordner .git ausgeblendet hatte. Die Berechtigungen waren in Ordnung, es war nur versteckt. Durch Anzeigen des Ordners wurde das Problem behoben.
quelle
Dadurch werden alle Berechtigungen im Ordner aufgelöst
quelle
Das hat bei mir funktioniert:
Keine Erlaubnis mehr verweigert Fehler in Git. 🎉
quelle
Sehen Sie sich den Eigentümer und die Gruppe des
.git
Verzeichnisses mit an (gehen Sie zuerst zum übergeordneten Verzeichnis von .git)ll .git
, sehen Sie sich die Gruppe und den Eigentümer des Verzeichnisses an und fügen Sie Ihren Benutzer der Gruppe des Besitzers mit hinzusudo usermod -a -G yourusername groupsofonwner
, dann melden Sie sich ab => anmelden und alles funktioniert .Also im Sommer
Gehe zum übergeordneten Verzeichnis von Git
Finde den Gruppenbesitzer der
.git
DirecotryFügen Sie Ihren Benutzer dieser Gruppe hinzu
Das Abmelden und Anmelden am System für diese Änderung wird wirksam.
Geniesse es ;)
quelle
Ich habe dieses Problem, wenn der .git-Ordner ausgeblendet ist und alle darin enthaltenen Dateien ebenfalls ausgeblendet sind. Machen Sie nur den .git-Ordner ausgeblendet, ohne die rekursiven Dateien zu aktualisieren, und es wird funktionieren.
quelle
Gründe für diesen Fehler können mehrere sein, aber in meinem Fall habe ich den Zweig mit root aktualisiert. Als ich dann versuchte, ihn mit einem normalen Benutzer zu aktualisieren, gab es einen Fehler.
Probieren Sie beide Lösungen aus, die für Sie funktionieren sollten
Wenn es nicht funktioniert, versuchen Sie es bitte mit der nächsten Lösung. Hoffen Sie, dass es Ihr Problem löst
quelle
Ich hatte diese Meldung bei der Verwendung von Git-Erweiterungen für Windows. Mein Fix war, einfach Git-Erweiterungen zu schließen und dann wieder als Administrator zu öffnen
quelle
In meinem Fall,
Dieser Befehl funktioniert.
quelle
Dieses Problem tritt auf, wenn Sie dem Ordner .git nicht genügend Berechtigungen erteilen. Um dieses Problem zu lösen-
Geben Sie diesen Befehl ein.
Ich hoffe es hilft..!!
quelle
Ich hatte genau den gleichen Fehler, aber in meinem Fall war das Problem das Ergebnis der Neuerstellung von Apache nach einem Upgrade auf die PHP-Version. Kurz gesagt, ich habe vergessen, das Apache-Modul 'suexec' zu installieren.
Es hatte nichts mit Gruppe oder Eigentum zu tun. Ich habe nur zwei Tage gebraucht, um herauszufinden, dass mich jemand erschossen hat ...
quelle
In meinem Fall hatte ich ein Dual-Boot-System (Windows 10 und Linux) mit Projektordner auf der NTFS-Festplatte. Es stellte sich heraus, dass bei einem anderen Update Windows 10 von selbst "Schnellstart" in seinen Einstellungen aktiviert wurde. Nachdem ich es in Windows deaktiviert habe, war der "Fehler: .git / FETCH_HEAD kann nicht geöffnet werden: Berechtigung verweigert" unter Linux verschwunden.
quelle
Ich habe dies erhalten, weil ich mehr als 1 Benutzerkonto auf meiner Box hatte. Ich war als Benutzer A angemeldet und befand mich in einem Verzeichnis für Benutzer B. Benutzer A hatte keine Berechtigung für die Inhalte von Benutzer B. Als ich merkte, dass ich nicht dort war, wo ich dachte, ich wäre im Dateisystem, machte dieser Fehler Sinn.
quelle
Wenn Sie unter Windows Server dasselbe Problem feststellen, müssen Sie die Befehlszeile mit ausreichenden Berechtigungen ausführen, z. B. mit Administratorrechten.
quelle
Verwenden Sie für MacOS-Benutzer (wenn High Sierra oder eine höhere Version) Folgendes:
quelle
TL; DR: Deaktivieren Sie in Dual Boot-Systemen den Schnellstart für Windows
Ich hatte dieses Problem in meinem Dual-Boot-Ubuntu / Windows-System. Ich konnte nichts in eine der Partitionen schreiben, die für Windows freigegeben sind (NTFS-Partitionen).
Ich habe kürzlich beide neu installiert und vergessen, den "Schnellstart" in Windows zu deaktivieren . Nachdem ich in Windows neu gestartet und diese Funktion deaktiviert und neu gestartet hatte, wurde alles wieder normal.
quelle