zum Inhalt springen

git

Was ist git?

git ist ein Tool zur Versionskontrolle von Dateien und Projekten. Insbesondere bei der Software-Entwicklung im Team oder auch alleine werden Versionskontrollsysteme (VCS) eingesetzt. Sie ermöglichen das gleichzeitige Arbeiten mehrerer Parteien an einem Projekt durch das "Kopieren-Verändern-Zusammenführen"-Modell und stellen zudem auf komfortable Weise Versionierung bereit, sodass man stets zu beliebigen Punkten im Entwicklungsprozess zurückspringen kann. git weist hierbei einige Besonderheiten auf, vor allem weil es ein verteiltes VCS ist, das heißt jeder Entwickler hat in der Regel zunächst ein lokales Repository, welches er dann mit anderen Repositories im Netz synchronisieren kann.

Wie benutze ich git?

git ist bei nahezu allen gängigen Linux-Distributionen in den Paketquellen verfügbar, so wie auch bei vielen anderen Unix-Betriebssystemen (etwa MacOS X, Solaris, BSD). Es existieren auch graphische Benutzeroberflächen, zum Beispiel gitk. Unter Windows muss man die kostenlose Software msysgit herunterladen und installieren. Für diejenigen, die Subversion mit dem Client TortoiseSVN verwenden, könnte zudem der Hinweis auf das Projekt Tortoisegit von Interesse sein.

Das Einrichten von Repositories ist sehr einfach. git verfügt darüber hinaus über unglaublich viele Möglichkeiten und entsprechend viele Befehle, die hier nicht im Detail erläutert werden können. Wir verweisen daher auf bestehende Kurzübersichten, Tutorials oder Bücher im Netz, zum Beispiel:

git am RRZK

Am RRZK steht git zur sofortigen Benutzung auf dem zentralen Benutzerserver "dialog.rrz.uni-koeln.de" zur Verfügung, der von allen Besitzern eines Studierenden- oder Personal-Accounts per SSH genutzt werden kann. Auf weiteren Servern können wir git auf Anfrage zur Verfügung stellen.

Für Projekte, in denen in Teams mit einem git-Repository gearbeitet werden soll, bietet sich die Nutzung der Projektmanagementsoftware Redmine mit integriertem git an. Hierbei kann der Projektverantwortliche auf besonders einfache Art den Zugriff auf das git-Repository beschränken.

git kann sowohl im Rahmen eines Webauftritts, eines Offline-Projektes oder im Homedirectory jedes Accounts benutzt werden. Es folgt ein kurzes Beispiel, bei dem ein lokales Repository sowie eines auf dialog eingerichtet und synchronisiert werden sollen.

Einfaches Beispiel (unter Linux)

  1. Anlegen des Netz-Repositories auf dialog:

    ssh IhrAccount@dialog.rrz.uni-koeln.de
    mkdir superprojekt
    cd superprojekt
    git init --bare
    exit

  2. Klonen des Netz-Repositories in ein lokales Repository (Verzeichnis "/home/benutzer/superprojekt"):

    cd
    git clone ssh://IhrAccount@dialog.rrz.uni-koeln.de/~/superprojekt

    (Anmerkung: Die Warnungen, dass ein leeres Repository geklont wurde, können ignoriert werden)

  3. Gegebenenfalls (einmaliges) Setzen globaler Variablen:

    git config --global --add user.name "Patrick Holz"
    git config --global --add user.email "patrick.holz@uni-koeln.de"

  4. Erstellen einer Datei und Hinzufügen zum Index:

    cd ~/superprojekt
    touch meintest.txt
    git add meintest.txt

  5. Bearbeiten der Datei und Übertragung in das lokale Repository:

    echo Testtext >> meintest.txt
    git commit -a -m "Testtext hinzugefügt"

  6. Übertragung der Änderungen in das Netz-Repository:

    git push origin master

Wie gesagt: Dies ist ein sehr einfaches Beispiel, welches in keinster Weise die Vorzüge von git herausstellen kann, da diese erst bei Themen wie Branches, Diffs, Merges, Patches und Commits deutlich werden. Es zeigt aber, wie man grundsätzlich mit git auf unseren Servern arbeiten kann.

Kontakt
Bei Fragen und für eine individuelle Beratung wenden Sie sich bitte an:
RRZK-Helpdesk
Telefon: (0221) 470-89555