Fehler beim Pushen auf GitHub – unzureichende Berechtigung zum Hinzufügen eines Objekts zur Repository-Datenbank

Lesezeit: 6 Minuten

Fehler beim Pushen auf GitHub – unzureichende Berechtigung zum Hinzufugen
kkrugler

Ich bekomme einen ungewöhnlichen Fehler zurück, während ich versuche, einen “Git-Push” auf mein GitHub-Repository durchzuführen:

Counting objects: 8, done.
Delta compression using 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 1.37 KiB, done.
Total 5 (delta 2), reused 0 (delta 0)
error: insufficient permission for adding an object to repository database ./objects

fatal: failed to write object
error: unpack-objects exited with error code 128
error: unpack failed: unpack-objects abnormal exit
To [email protected]:bixo/bixo.git
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to '[email protected]:bixo/bixo.git'
  • Nach einem sauberen Klon von GitHub kann ich eine geänderte Datei bearbeiten/hinzufügen/commit/pushen.
  • Wenn ich dies dann ein zweites Mal wiederhole, bekomme ich den obigen Fehler.
  • Ich kann problemlos auf andere GitHub-Repositories pushen.
  • Ich habe die Datei-/Verzeichnisberechtigungen auf meiner Seite überprüft, und sie scheinen in Ordnung zu sein.
  • Ich verwende git 1.6.2.3 auf Mac OS X 10.5.8

Das obige Repository war die Quelle meines Spaßes für eine frühere Stack Overflow-Frage (SO 1904860), also wurde das GitHub-Repository möglicherweise beschädigt. Das einzige ähnliche Problem, das ich über die Suche gefunden habe, war ein Entpacken fehlgeschlagen Problem auf github gemeldet. Ist dieses Problem schon einmal jemandem begegnet, besonders wann nicht mit GitHub?

  • Mögliches Duplikat von Git Push Error: Unzureichende Berechtigung zum Hinzufügen eines Objekts zur Repository-Datenbank

    – lpapp

    28. Januar 2014 um 15:01 Uhr

  • Ein weiterer Hinweis für Leute mit diesem Fehler: Ich habe diesen Fehler erhalten, weil ich den falschen Benutzer zum Pushen verwendet habe. Mein Server hat einen Benutzer foo und git; beide können lesen /opt/git/<repo>aber nur git kann dazu schreiben. git Standardmäßig der aktuelle Benutzer, wenn keiner angegeben ist .git/config, was ich vergessen habe. Keine der ausführlichen Antworten unten war notwendig.

    – Sebastian

    27. August 2014 um 7:18 Uhr


Fehler beim Pushen auf GitHub – unzureichende Berechtigung zum Hinzufugen
Syvex

Wenn Sie diesen Fehler außerhalb von Github sehen, finden Sie hier Abhilfe.

Habe das von:
http://mapopa.blogspot.com/2009/10/git-insufficient-permission-for-adding.html

ssh [email protected]
cd repository/.git

sudo chmod -R g+ws *
sudo chgrp -R mygroup *

git config core.sharedRepository true

Danach sollte der Git-Daemon beim Schreiben in .git/objects die Gruppendateiberechtigungen verwenden.

  • +1 Es hat bei uns funktioniert. Wofür steht das ‘s’ in sudo chmod -R g+ws *?

    – Erich B

    7. Juli 2011 um 12:07 Uhr

  • Dadurch können alle neuen Dateien, die von einem anderen Benutzer erstellt wurden, die Gruppenberechtigungen des Stammverzeichnisses beibehalten. Andernfalls treten Fehler beim Hochschieben in das Repository auf. Siehe setuid und setgid

    – Syvex

    7. Juli 2011 um 17:05 Uhr


  • Ich habe den gleichen Fehler mit Gitorious unter Debian 6 und PHPStorm IDE mit dieser Meldung “Fehler: unzureichende Berechtigung zum Hinzufügen eines Objekts zur Repository-Datenbank .git/objects”. Ich habe diese Lösung für den übergeordneten Ordner des Projekts verwendet, funktioniert gut mit dem “+s-Trick”.

    – Benj

    22. April 2013 um 8:55 Uhr


  • repo-config ist veraltet. Sollte sein git config core.sharedRepository true.

    – lpapp

    28. Januar 2014 um 15:03 Uhr

  • Hinweis: Wenn Sie den Platzhalter ““, versteckte Dateien und Ordner (wie .git!) sind möglicherweise nicht betroffen! Wenn das oben Gesagte bei Ihnen nicht funktioniert, führen Sie die Befehle für ./.git aus auch

    – Ben Rogmans

    5. September 2014 um 7:26 Uhr


1646308686 594 Fehler beim Pushen auf GitHub – unzureichende Berechtigung zum Hinzufugen
Bijan

Normalerweise wird dieses Problem durch falsche Benutzer- und Gruppenberechtigungen im Dateisystem Ihres Git-Servers verursacht. Das Git-Repository muss dem Benutzer und auch seiner Gruppe gehören.

Beispiel:

Wenn Ihr Benutzer „git“ heißt, seine Gruppe „gitgroup“ und der Speicherort des Git-Repositorys lautet: [email protected]:path/to/repo.git

dann mach mal:

sudo chown -R git:gitgroup path/to/repo.git/

Dadurch wurde der Git-Fehler „Unzureichende Berechtigung“ für mich behoben.

  • chown: ungültiger Benutzer: `git:git’

    – Alan Coromano

    1. April 2013 um 15:08 Uhr

  • @MariusKavansky versuchen Sie $USER:$USER anstelle von git:git

    – Dwurf

    5. November 2013 um 23:28 Uhr

  • Das funktioniert bei mir nur einige Zeit. Ich muss es nach einigen Stößen wiederholen.

    – BuZZ-dEE

    27. November 2013 um 15:45 Uhr

  • Dies ist die beste Antwort, aber Sie sollten sagen, dass Sie den Chown auf “.git/objects” beschränken können und der Benutzer, den Sie “git” nennen, nur der Benutzer ist, mit dem Sie angemeldet sind. Die Tatsache, ob der Benutzer dem Git-Server bekannt ist oder nicht, ist nicht wichtig.

    – Tristan

    22. Februar 2017 um 17:14 Uhr

sudo chmod 777 -R .git/objects

  • Das hat bei mir funktioniert … aber WTF?? Ich habe das Repo monatelang aktualisiert und das hat plötzlich heute Nachmittag angefangen …

    – Gojira

    10. Februar 2015 um 20:17 Uhr

  • Die Lösung für mich war fast die gleiche, beinhaltete jedoch das Ändern/Korrigieren des Eigentümers einiger Dateien im .git-Verzeichnis. Ich hatte einige Git-Wartungsarbeiten durchgeführt, während ich als „root“ angemeldet war, und dies schien entweder den Besitzer auf root geändert oder einige neue Dateien mit dem Besitzer von root erstellt zu haben, auf den sich Git stützte. Ich hatte ein Skript für die automatische Bereitstellung, das unter dem Besitzer „Apache“ ausgeführt wurde und dann nicht mehr funktionierte.

    – Coatesap

    11. Juni 2015 um 16:35 Uhr

  • chmod 777 ist nie eine gute Lösung, nur ein unsicherer Workaround. Versuchen Sie stattdessen die Antwort von @Syvex (mit setgid)

    – 4 Wochen_

    9. Juli 2015 um 16:02 Uhr


Das ist mir passiert, als ich es versucht habe git pull. Einige Analysen zeigten, dass jemand in der Vergangenheit mit root festgeschrieben und dadurch einige Objekte mit Root-Besitz in erstellt hat .git/objects.

Also rannte ich

cd <repo>
la .git/objects/

und das zeigte sich root Eigentümerschaft für einige Objekte (Verzeichnisse) wie folgt:

[email protected]:/repo> la .git/objects/
total 540
drwxr-xr-x 135 user user 4096 Jun 16 16:29 .
drwxr-xr-x   8 user user 4096 Jun 16 16:33 ..
drwxr-xr-x   2 user user 4096 Mar  1 17:28 01
drwxr-xr-x   2 user user 4096 Mar  1 17:28 02
drwxr-xr-x   2 user user 4096 Jun 16 16:27 03
drwxr-xr-x   2 user user 4096 Mar  3 13:22 04
drwxr-xr-x   2 root root 4096 Jun 16 16:29 05
drwxr-xr-x   2 user user 4096 Jun 16 16:28 07
drwxr-xr-x   2 root root 4096 Jun 16 16:29 08

Dann rannte ich

sudo chown -R user:user .git/objects/

und es hat funktioniert!

Ich ersetzte Benutzer natürlich mit meinem realen user.

Nichts von dem oben Gesagten hat bei mir funktioniert. Ein paar Stunden später fand ich den Grund für das Problem: Ich habe eine Repo-URL des Typs verwendet

ssh://[email protected]/~git/repo.git

Leider habe ich eine Putty-Session mit dem Namen gespeichert example.com die für die Anmeldung als Benutzer konfiguriert wurde myOtherUser.

Also, während ich dachte, Git verbindet sich mit dem Host example.com mit dem Benutzer ‘git’ hat sich Git/TortoiseGit mit der Putty-Session verbunden example.com die der Benutzer verwendet myOtherUser. Dies führt zu genau dem gleichen ..insufficient permission.. Fehler (weil beide Benutzer in unterschiedlichen Gruppen sind).

Lösung: Benennen Sie die Putty-Session um example.com zu [email protected]

1646308687 995 Fehler beim Pushen auf GitHub – unzureichende Berechtigung zum Hinzufugen
Tristan

chmod sollte chown sein, also ist die richtige Zeile:

sudo chown -R gituser:gituser objects

1646308687 619 Fehler beim Pushen auf GitHub – unzureichende Berechtigung zum Hinzufugen
dotdotdotPaul

Seltsamerweise hatte ich dieses Problem bei einem Klon des Repos, den ich hatte, aber nicht bei einem anderen, den ich hatte. Abgesehen vom erneuten Klonen des Repos (was ein Kollege tat, um dieses Problem erfolgreich zu umgehen), gelang es mir, einen “Git-Reset” an dem Commit durchzuführen, das ich hatte, bevor die Fehler begannen. Dann habe ich die Änderungen erneut festgeschrieben und konnte danach erfolgreich pushen. Trotz aller Anzeichen gab es also ein Problem auf dem Server, in diesem Fall deutete es anscheinend auf eine Kuriosität im lokalen Repo hin.

923130cookie-checkFehler beim Pushen auf GitHub – unzureichende Berechtigung zum Hinzufügen eines Objekts zur Repository-Datenbank

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy