Kapitel 5
Branches
Worauf ein Branch zeigt
Du hast einen kleinen Stadtteilführer geöffnet, der bereits zwei Commits enthält. Das Repository ist vorbereitet, und das Terminal befindet sich bereits darin. Diese Lektion beginnt mit diesem unveränderten Repository. Du musst also vorher weder Dateien anlegen noch eine andere Lektion zu Branches abschließen.
Ein Branch ist ein verschiebbarer Name
Jeder Commit hat eine lange Kennung. Menschen brauchen aber einen praktischen Namen für den neuesten Commit einer Entwicklungslinie. Ein Branch ist dieser Name. Er zeigt auf einen Commit, und Git kann dessen Verknüpfungen zu den Vorgängern durch den früheren Verlauf zurückverfolgen. Falls du git reset schon im Kapitel zum Rückgängigmachen kennengelernt hast: Genau diesen Namen hat es verschoben.
Wenn du auf einem Branch einen weiteren Commit erstellst, verschiebt Git den Branch-Namen auf den neuen Commit. Git kopiert das Projekt nicht in einen anderen Ordner. Commits und Dateien bleiben in einem Repository. Der Branch ist ein kleiner beweglicher Zeiger innerhalb dieses Repositorys.
Die Abbildung zeigt vorab, was passiert, nachdem zwei Branch-Namen zu unterschiedlichen Commits gewandert sind. Das unveränderte Repository unten hat sich noch nicht aufgeteilt: Beide Namen zeigen noch auf denselben neuesten Commit.

Das vorbereitete Repository hat zwei Branch-Namen: main und clearer-title. Beide zeigen derzeit auf denselben neuesten Commit. So sieht das aus, wenn der neueste Commit wie in der Ausgabe von git log oben steht und die Branch-Namen jeweils neben dem Commit stehen, auf den sie zeigen:
Clarify the guide title <- main, clearer-title
|
Start the neighborhood guide
Die senkrechte Linie bedeutet: „Der untere Commit ist der Vorgänger des oberen.“ Dieses Repository enthält zwei Commits und zwei Namen. Beide Namen bezeichnen denselben Commit. Das ist ein Verlauf und ein Arbeitsbaum, keine zwei Kopien des Führers.
Die Branch-Namen ansehen
Der einfache Befehl git branch listet die lokalen Branches des Repositorys auf. Ohne Optionen und zusätzliche Wörter liest er nur ihre Namen. Er erstellt, wechselt oder löscht nichts.
Führe ihn jetzt aus:
git branch
Git gibt clearer-title und main aus. Eine Zeile beginnt mit *. Dieser Stern markiert den Branch, auf dem du gerade bist. Im unveränderten Ausgangszustand ist das main.
Git führt außerdem eine besondere Markierung namens HEAD, in Großbuchstaben geschrieben. HEAD bedeutet „wo ich gerade bin“. Bei gewöhnlicher Arbeit auf einem Branch zeigt HEAD auf den aktuellen Branch, und dieser zeigt auf den aktuellen Commit. Hier zeigt HEAD auf main, während main auf Clarify the guide title zeigt.
Clarify the guide title <- main (HEAD), clearer-title
|
Start the neighborhood guide
Du musst HEAD noch nicht eintippen. Der Begriff erklärt, warum Git weiß, welcher Branch beim nächsten Commit verschoben werden soll.
Was entsteht normalerweise, wenn du einen weiteren Git-Branch anlegst?
Ein einfaches git branch zeigt einen Stern neben main. Was sagt dir der Stern?
Als Nächstes legst du mit einem einfachen Befehl an genau diesem Commit einen dritten Branch an und wechselst zu ihm.