Git Repositories mit mehreren Nutzern

Wenn man ein zentrales git Repository verwendet initialisiert man dieses meistens mit $git init –bare Repo.git

Das klappt bei einem einzigen User wunderbar und man kann arbeiten wie gewünscht. Wenn es dann mal mehr Nutzer werden sollen muss man zunächst eine Gruppe anlegen (ich nehme ‘git’) und dann die Nutzer der Gruppe hinzufügen: $groupadd git $useradd user2 $usermod -G git -a user2

Dann kann man in sein Repository gehen und die Gruppe der Dateien ändern: $cd Repo.git $chown -R git *

Das Problem ist allerdings, dass git standardmäßig die Gruppenrechte der Objekte auf nicht-schreibbar setzt. Wenn also jemand ein neues Objekt pushed, dann kann es nur von diesem User bearbeitet werden. Die Lösung für das Problem ist, dass man entweder zu Anfang das Repository als shared erstellt: git init –bare –shared Repo.git

Oder nachträglich über

$git config --add core.sharedRepository true

die betreffende Einstellung ändert. Nun sollten alle Gruppenmitglieder Schreibrecht auf  die Objekte erhalten und es sollte keine Konflikte beim Pushen mehr geben.