Git Server einrichten
Git ist eine moderne Versionsverwaltung und wird u. a. auch für die Kernel-Entwicklung unter Linux benutzt. Neben GitHUB kann man sich auch lokal einen kleinen Git-Server einrichten. Ein ganz minimalistisches Beispiel sei hier beschrieben.
Voraussetzungen
SSH ist auf dem Server eingerichtet und Benutzer können sich über SSH zu dem Server verbinden.
Git auf der Server
Zuerst installiert man das Git-Paket auf dem System
apt get update && apt-get install git
Anschließend legt man dafür ein Verzeichnis fest, z. B.
cd /opt mkdir git
Jetzt legen wir noch eine Gruppe an
adduser git usermod johnnywalker -aG git usermod jimbeam -aG git
Da später mehrere Leute in das Verzeichnis einchecken können sollen, müssen wir die Standardberechtigungen des Dateisystems anpassen. Dazu benötigen wir setfacl
apt-get install acl
Mit den ACLs (Access Control Lists) können granulare Zugriffsrechte auf Dateien und Verzeichnisse festgelegt werden. Außerdem lassen sich auch die Standardberechtigungen damit festlegen.
chmod g+s /opt/git // neu erstellte Dateien und Verzeichnisse sollen der Gruppe git gehören setfacl -d -m g::rwx /opt/git // Owner und Gruppe sollen Schreib- und Leserechte haben setfacl -d -m o::rx /opt/git // Alle anderen können nur lesen können
Nun können wir ein leeres Repository initialisieren. Die Zugriffsrechte werden jetzt automatisch korrekt gesetzt.
cd /opt/git mkdir project.git cd project.git git --bare init
Initialer Commit beim Entwickler
Der Entwickler legt sich nun zuerst lokale auf seiner Maschine einen Ordner für das Projekt an:
cd /home/johnnywalker/ mkdir project cd project git init git add . git commit -m 'initial commit' git remote add origin johnnywalker@gitserver:/opt/git/project.git git push origin master
Check out
Der Check erfolgt ziemlich ähnlich.
git clone git@gitserver:/opt/git/project.git cd project vim README git commit -am 'fix for the README file' git push origin master
Quellen
http://git-scm.com/book/de/v1/Git-auf-dem-Server-Einrichten-des-Servers