Nachdem Sie einige Dinge hinzugefügt haben ... legen Sie sie fest und schieben Sie sie schließlich! KNALL!! Starten Sie alle Probleme ... Wie Sie bemerken sollten, gibt es einige Unterschiede in der Art und Weise, wie sowohl neue als auch vorhandene Projekte definiert wurden. Wenn eine andere Person versucht, dieselben Dateien oder Inhalte hinzuzufügen / festzuschreiben / zu pushen (git behält beide als dieselben Objekte bei), tritt der folgende Fehler auf:
$ git push
Counting objects: 31, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (17/17), done.
Writing objects: 100% (21/21), 2.07 KiB | 0 bytes/s, done.
Total 21 (delta 12), reused 0 (delta 0)
remote: error: insufficient permission for adding an object to repository database ./objects remote: fatal: failed to write object
Um dieses Problem zu lösen, müssen Sie das Berechtigungssystem des Betriebssystems berücksichtigen, da Sie in diesem Fall dadurch eingeschränkt werden. Um das Problem besser zu verstehen, überprüfen Sie den Ordner Ihres Git-Objekts (.git / Objekte). Sie werden wahrscheinlich so etwas sehen:
<your user_name>@<the machine name> objects]$ ls -la
total 200
drwxr-xr-x 25 <your user_name> <group_name> 2048 Feb 10 09:28 .
drwxr-xr-x 3 <his user_name> <group_name> 1024 Feb 3 15:06 ..
drwxr-xr-x 2 <his user_name> <group_name> 1024 Jan 31 13:39 02
drwxr-xr-x 2 <his user_name> <group_name> 1024 Feb 3 13:24 08
* Beachten Sie, dass die Berechtigungen dieser Datei nur für Ihre Benutzer erteilt wurden. Niemand kann sie ändern ... *
Level u g o
Permission rwx r-x ---
Binary 111 101 000
Octal 7 5 0
LÖSUNG DES PROBLEMS
Wenn Sie über eine Superuser-Berechtigung verfügen, können Sie alle Berechtigungen mithilfe von Schritt 2 selbst ändern. In jedem anderen Fall müssen Sie alle Benutzer mit Objekten, die mit ihren Benutzern erstellt wurden, fragen. Verwenden Sie den folgenden Befehl, um zu erfahren, wer sie sind ::
$ ls -la | awk '{print $3}' | sort -u
<your user_name>
<his user_name>
Jetzt müssen Sie und alle Benutzer des Dateibesitzers die Berechtigung für diese Dateien ändern.
$ chmod -R 774 .
Danach müssen Sie eine neue Eigenschaft hinzufügen, die --shared = group entspricht, die für das neue Repository erstellt wurde. Gemäß der Dokumentation wird das Repository für die Gruppe beschreibbar. Führen Sie Folgendes aus:
$ git config core.sharedRepository group
https://coderwall.com/p/8b3ksg
git add
undgit commit
-ing als Root-Benutzer erhalten. Ich habe es mit agit reset
und der Antwort dieser Frage behoben , um die.git
Verzeichnisberechtigungen zu korrigieren.