Um meinem Versprechen aus vergangenen Posts nachzukommen, möchte ich ein ganz kurzes Tutorial vorstellen, das die Grundkniffe von Git auf der Konsole vorstellt. In diesem Post zeige ich, wie man ein “zentrales” Repository mit Git erstellt und dieses dann bei sich lokal auscheckt. Zudem werde ich versuchen euch das Arbeiten mit Branches etwas nächer zu bringen.
Zunächst brauchen wir ein frisches, neues Repository, mit dem wir arbeiten möchten/wollen/sollen. Ich nehme an, dass der versierte Leser den umgang mit einem Konsolentool beherrscht (hier ist speziell die Rede von Ubuntu und dem Teminal). Zudem setze ich voraus, dass ein vServer (oder ein ähnlicher Server, z.B. root-Server oder ein Heimserver) vorhanden ist, auf den ihr root Zugriff habt.
Da Git das Tool der Wahl ist, brauchen wir es sowohl auf dem Host-System (auch Remote genannt) als auch auf dem Client (z.B. euer lokaler Rechner). Ich führe das Beispiel vor, wenn euer Host System ein Heimserver ist mit der IP 192.168.1.102 und dem Benutzernamen “hostuser”
Um Git lokal (Ubuntu 10.04 oder 10.10, oder was ihr mögt…) nutzen zu können, müssten wir es installieren. Das geschieht mit folgendem Befehl:
sudo apt-get install git-core
Im zweiten Schritt loggen wir uns per SSH auf dem Host-System unter dem Benutzernamen hostuser ein und installieren auch hier Git:
ssh hostuser@192.168.1.102
sudo apt-get install git-core
Repositories lege ich (persönlich) gerne strukturiert im repos Ordner im Home-Folder des Benutzers ein. Aber das ist jedem selbst überlassen, hier gibt es keine speziellen Vorgaben:
mkdir -p /home/hostuser/repos
Nun wechseln wir in das Verzeichnis, um hier ein Repository zu erstellen (ja, es ist die Langvariante, für alle Besserwisser *g* ):
cd /home/hostuser/repos
Ein Repository ist bei Git im Grunde nur ein Verzeichnis, welches Git informationen enthält. Ich nehme hier an, dass wir ein PHP Projekt starten möchten, also erstellen wir zunächst ein Verzeichnis und wechseln zu direkt zu diesem:
mkdir php.myproject.git
cd php.myproject.git
Die Namensgebung ist auch hier nur eine Vorliebe von mir. Es ist jedem selbst überlassen, wie man das Verzeichnis benennt. In dem Verzeichnis selbst initiieren wir ein leeres Git repo.
git init --bare --share
Damit haben wir schon einene großen teil geschafft. Nun loggen wir uns mit dem “exit” oder “logout” befehl wieder aus, sodass wir nun auf dem lokalen System dieses erzeugte Repository clonen können. Dies geschieht wie folgt (wohlgemerkt auf dem lokalen Rechner, nicht auf dem Server):
git clone ssh://hostuser@192.168.1.102/home/hostuser/repos/php.myproject.git php.myproject.git
Falls alles wie geplant funktioniert hat, solltet ihr eine Passwortabfrage erhalten (wenn der Zugang zum server vernünftig gesichert ist). Im hinteren Teil des Befehls seht ihr das Zielverzeichnis in das geclont wird (euer lokales Repository). Nun wechseln wir in dieses Verzeichnis und führen…
git status
…aus. Hier solltet ihr einige erste Informationen zum lokalen repo bekommen. Damit sind wir eigentlich schon fertig und können mit dem Repository arbeiten. Nun kann man noch einige interessante Dinge ausprobieren. Mit…
git branch -r
… erfahrt ihr, welche branches euer Remote-Repository zur Verfügung hat. Um einen neuen Branch (lokal) zu eröffnen, führt man git branch aus, in etwa so:
git branch v1.0.0
Hier habe ich meinen neuen Branch v1.0.0 benannt. Wie ihr den Branch benennt ist auch hier eurer Phantasie überlassen. Mit git checkout wechselt man zu diesem neuen Branch:
git checkout v1.0.0
Um diesen Branch nun auch auf das Remote System zu bringen, kann man ganz einfach folgenden gut Befehl verwenden:
git push origin v1.0.0
Damit wird der Branch in euer “zentrales” Repo geschoben (damit auch andere diesen zur Verfügung haben).