Mein erstes Git Repository auf dem Server war schnell erstellt:sudo mkdir -p /var/git/netzpiraten.gitcd /var/git/netzpiraten.gitgit –bare init –shared=group… und schon konnte ich loslegen …
git clone ssh://www.netzpiraten.ch/var/git/netzpiraten.gitcd netzpiratentouch testgit add testgit commit -a -m "Adding first file"git push origin master
… und hatte wirklich nie irgend welche Probleme mit dem zentralen Repository auf dem Server.Ein paar Monate später wurden auch in der Firma alle Subversion Repositories auf Git umgestellt und das lief auch ein Weilchen ohne Probleme, bis eines Tages folgende Fehlermeldung aufgetreten ist:
Counting objects: 31, done.Compressing objects: 100% (20/20), done.Writing objects: 100% (22/22), 239.64 KiB, done.Total 22 (delta 7), reused 0 (delta 0)error: unable to write sha1 filename ./objects/1c/1d505f3a585b9e7d298eb9477ab07c5ea79aea: Permission deniedfatal: failed to write objecterror: unpack failed: unpacker exited with error codeTo ssh://git.screenconcept.ch/var/git/repository.git ! [remote rejected] master -> master (n/a (unpacker error))
Also nichts wie auf den Server um das Repository etwas genauer zu inspizieren.Zum Glück konnte der Fehler schnell gefunden werden: Ich hatte vergessen auf den Git Repositories das Setgid Flag zu setzten, womit neue Dateien nicht der Git Gruppe gehörten sondern der Hauptgruppe des Benutzers. Klar das eine anderer Benutzer diese nun nicht einfach so überschreiben kann.Also schnell den Missstand korrigieren:
sudo chown -R :git /var/git
sudo find /var/git -type d | xargs chmod ug+rwx,g+s
… und jetzt kann wieder gemeinsam gearbeitet werden.
Man merke sich also folgendes für das Erstellen eines zentralen Git Repository:
- Git Repository Verzeichnis erstellen
- Das Verzeichnis der Gruppe ‘git’ zuweisen
- Auf dem Verzeichnis das Setgid Flag setzten
- Git Repository initialisieren
oder anders formuliert
sudo mkdir /var/git/repository.git
sudo chown :git /var/git/repository.git
sudo chmod ug+rwx,g+s /var/git/repository.git
sudo git init --bare /var/git/repository.git
… und nicht vergessen, Git macht am meisten Spass, wenn man auf GitHub teilt.

(1 Benutzer, durchschnittlich 4 Goldstücke)















Kommentare
gph, michi, Jacko_Momocini, michi, Jacko_Momocini [...]
Stephan, benjie, Florian, Peter, peter pan [...]
michi, flöschen
michi, Golfplätze Schweiz, michi, Blankster, michi [...]
michi, Christian, michi, michi, Lukas Eppler