Logo der Firma Zelantic, auf dem ein Polarfuchs zu sehen ist

Git: Arbeiten mit Remote

card image

Git: Arbeiten mit Remote

Es ist wieder #TechFriday! Das ist der vierte Post in der Reihe Git, viel Spaß beim Lesen.

Beim letzten Mal ging es um die Individualisierung des log-Befehls und das Rückgängigmachen von Fehlern. Heute wird das Arbeiten mit Remotes vorgestellt.

Arbeiten mit Remotes:

Wenn wir von Remotes reden, sind damit Repositories gemeint, die im Internet oder in einem Netzwerk gehostet werden. Dadurch kann man einfach mit anderen Leuten zusammenarbeiten und seine Arbeit teilen. Im folgenden zeige ich euch wie man mit Remotes arbeitet:

Um eine Übersicht zu erhalten, wie viele Remotes lokal vorhanden sind, nutzt man den Befehl
git remote

Der Standardname für ein Remote in Git ist origin. Im zweiten Teil der Reihe wurde festgestellt, dass wir ein Remote lokal klonen können, indem wir den clone-Befehl nutzen. Dadurch wird das Remote mit dem Namen origin bei euch geklont. Wenn ihr das Repository explizit klonen wollt könnt ihr das mit dem Befehl
git remote add
erreichen. Dadurch bestimmt ihr den Namen für das Repository selber und es wird in Zukunft mit dem festgelegten Namen angesprochen.

Fetch & Pull

Um die Daten aus einem Repository zu ziehen könnt ihr den Befehl
git fetch
nutzen. Dadurch werden alle Änderungen gedownloadet, die remote aber noch nicht lokal existieren. Das bedeutet allerdings, dass ihr eure eigenen Änderungen noch manuell mit den gedownloadeten Änderung vereinen müsst, das nennt man merging. Mit dem pull-Befehl passiert das merging automatisch. Allerdings müsst ihr einen Branch verfolgen, hierzu später mehr. Wenn ihr den Remote mit clone kopiert habt, folgt ihr automatisch dem Standardbranch, meistens heißt dieser master.

Push

Wenn ihr eure Änderungen in den Remote pushen wollt, könnt ihr das mit dem Befehl
git push
erreichen. Dies funktioniert allerdings nur wenn ihr Schreibrechte habt und niemand anders seine Änderungen gepusht hat. Dann müsst ihr erst die Änderungen pullen.

Mit dem Befehl
git remote show
erhaltet ihr weitere Informationen über das Repository. Alle Branches werden aufgelistet und es wird gezeigt, auf welchem Branch gepusht wird. Ihr könnt ein Remote umbenennen mit dem Befehl git remote rename .

Tagging

Bei der Entwicklung macht es Sinn verschiedene Versionen zu kennzeichnen, um diese unterscheiden zu können. Bei Git gibt es hierfür Tags, ihr könnt mit dem Befehl git tag alle Tags anzeigen lassen. Wenn ihr nach einer bestimmten Version, beispielsweise der Reihe 1.1, sucht könnt ihr den folgenden Befehl verwenden.
git tag -l "v1.1*"

Es gibt zwei verschiedene Arten von Tags, lightweight und annotated. Ein lightweight-Tag zeigt einfach auf einen Commit, wohingegen ein annotated-Tag ein eigenständiges Objekt in der Datenbank ist. Das bedeutet sie haben eine ID, den Namen desjenigen der das Tag erstellt hat und die Tag-Nachricht.

Ihr könnt annotated-Tags mit dem Befehl
git tag -a v1.0 -m "Erste Version 1.0"
erstellen. Die Flagge -a steht für annotated und -m setzt die Nachricht. Mit dem Befehl git show v1.0 könnt ihr die Informationen einsehen.

Wenn -a nicht angegeben wird, erstellt ihr einen lightweight-Tag. Ihr könnt auch nachträglich Tags erstellen, indem ihr die gesamte oder einen Teil der ID des Commits nutzt. Die ID könnt ihr sehen, wenn ihr den log-Befehl nutzt. Anschließend führt ihr den folgenden befehl aus.
git tag -a v1.1

Ihr könnt einzelne Tags pushen mit git push , ansonsten könnt ihr auch mit git push --tags alle Tags pushen. Löschen könnt ihr Tags mit dem Befehl git tag -d

Aliases

Wenn euch ein Befehl zu lang ist, ihr ihn aber öfter braucht, könnt ihr für ihn einen Alias anlegen. Beispielsweise wird hier ein Alias namens plog angelegt, der den Log mit einer Zeile pro Commit ausgibt:
git config --global alias.plog 'git log --pretty=oneline'

Zusammenfassung:

In diesem Blog-Beitrag wurde das Arbeiten mit Remotes vorgestellt. Es wurden Tags vorgestellt, die die Versionierung des Repositories vereinfachen und Aliases, die für lange Befehle angelegt werden können. Nächste Woche wird das Branching dargestellt - eine von Gits Hauptfunktionen!