Installation des Git-Clients
Um mit Git arbeiten zu können, muss es zunächst einen Client geben.
Linux
Auf einem Linux-Rechner wird das Paket
git installiert.
Das kann auf Debian-ähnlichen Systemen (Ubuntu, Mint) mit dem folgenden Befehl
als root installiert werden (ggf. sudo voranstellen):
apt-get install git
Grafische Oberflächen gibt es reichlich. Für den KDE-Desktop eignet sich
gitk, ansonsten stehen Git-Cola zur Verfügung. Letzteres wurde auch für Windows
und Mac portiert.
Windows
Das Paket
Git für Windows
enthält eine Kommando-Shell, die sogenannte Git-Shell als auch eine grafische
Oberfläche.
Mac
Auch für den Mac gibt es
Git-Unterstützung
Ein zentrales Repository auf Dateizugriffsbasis
Es ist prinzipiell möglich und recht einfach, ein zentrales Repository
auf einem zentralen Netzlaufwerk abzulegen und von den Arbeitsplätzen
zuzugreifen. Als Provisorium oder für weniger wichtige Versionsverwaltungen,
ist das durchaus ein gangbarer Weg.
Zum Anlegen des Repositories erzeugt man ein Verzeichnis, wechselt hinein
und ruft den Befehl git init auf.
git --bare init
Mit der Option
--bare
wird ein Repository angelegt, in dem die verwalteten Dateien nicht
öffentlich ausliegen. Das mindert die Versuchung, im zentralen Repository
direkt zu arbeiten.
Client-Zugriff
Der Client erzeugt sich einen Clone des zentralen Repositories, indem er
dem Befehl
git clone den Pfad des Repositories als Argument übergibt.
git clone /pfad/repository
Diese Variante ist besonders unter Windows beliebt, weil man sich so nicht mit
SSH oder HTTP befassen muss, aber gleichzeitig auch gerade hier gefährlich,
weil ein solches Repository im direkten Zugriff eines
Verschlüsselungs-Trojaners liegt.
Zentraler GIT-Server für SSH-Zugriffe
Mit einem einfachen Linux-Server kann ein einfachser Git-Server auf der
Basis von SSH entstehen.
Auf dem Server müssen dazu die Pakete
git und ein SSH-Server
aus dem Paket
openssh-server installiert sein.
Nun wird ein Benutzer git angelegt, über den später die SSH-Aufrufe für das
GIT laufen sollen.
adduser git
Der Benutzer git muss von außen per ssh auf den Rechner dürfen.
Im Zweifelsfall muss in der Datei
/etc/ssh/sshd_config
den Eintrag
AllowUsers um git ergänzen.
Man sollte prüfen, ob die SSH-Einrichtung einwandfrei klappt.
Dazu loggt man sich einfach als git auf dem Server ein.
ssh git@server
Soll der Zugriff auf die Maschine für den Benutzer git eingeschränkt werden,
kann in der
/etc/passwd statt bash der Eintrag
/usr/bin/git-shell
eingetragen werden. Anschließend kann sich git nicht mehr direkt per ssh
auf der Zielmaschine einloggen.
Anlegen eines Repositories
Die Repositories können auf dem Server an zentraler Stelle beispielsweise
im Verzeichnis
/var/git abgelegt werden. Der Benutzer git muss
die Berechtigung bekommen, in diesem Verzeichnis zu schreiben und zu lesen.
Einfacher ist es, die
Repositories im Heimatverzeichnis des Benutzers git abzulegen. Dann können sie
in der URL ohne Pfadangabe zugegriffen werden.
Dann läge die Repositories im Verzeichnis /home/git.
Nur wird ein leeres Repository namens testprojekt initialisiert.
Dazu meldet man sich zunächst als Benutzer git an.
cd
mkdir testprojekt
cd testprojekt
git --bare init
Zugriff vom Client
Der Client kann sich einen Clone auf dem Arbeitsplatzrechner mit dem
folgenden Befehl ziehen:
git clone git@server:testprojekt
Um eine Datei
test.txt ins zentrale Repository zu schaffen, muss diese
- im lokalen Verzeichnis testprojekt angelegt werden.
- per git add test.txt in den Zustand staged gebracht werden.
- per git commit ins lokale Repository übernommen werden.
- per git push in das zentrale Repository geschoben werden.
Git-Server-Pakete
Soll eine ausgefeiltere Benutzerverwaltung erfolgen, ist es sinnvoll, passende
Pakete zu verwenden.
- Das Paket Gitolite erlaubt die
Authentifizierung der Benutzer über einen
SSH-Key. Mit einem Konfigurations-Projekt können Sie mehrere Repositories
verwalten, Gruppen anlegen und Rechte auf die Repositories definieren.
GitoLite ist schnell installiert und liegt als Paket den meisten
Linux-Distributionen bei.
- Das Projekt GitLab ist umfangreicher.
Es verfügt über ein Web-Interface,
über das Repositories, Gruppen und Benutzer definiert werden können.
Da GitLab über E-Mail korresponiert, wird ein lokales Postfix
konfiguriert, das seinerseits ein E-Mail-Account benötigt, über das es
die Benutzer kontaktieren kann.
Links