Table of Contents
Ein Branch ist eine parallele Entwicklungslinie vom Source-Code, der von einem gewissen Zeitpunkt an erstellt wurde und weitergeführt wurde. Typische Darstellung für solche Branches ist z.b. folgende Illustration.
Prinzipiell sieht man immer einen „master“ Branch. Dieser ist der default Branch, der beim erstellen eines neuen Repositories als erstes erstellt wird.
Dieser muss aber nicht immer vorhanden sein! Theoretisch kann vor dem ersten Commit der master Branch auf einen anderen Branch gewechselt werden! Dies ist aber eher unüblich, da der master Branch sehr oft als „Basis“ des Repositories hergenommen wird.
Wichtigste Befehle
Anzeige von vorhandenen Branches
git branch
Ebenso zeigt dieser Befehl den aktuell aktiven Branch an. Dies funktioniert aber nur, wenn zumindest eine Commit in diesem Branch vorhanden ist! Ein leeres Repository ohne commits hat noch keine Branches!
Erstellung eines Branches
git checkout -b <branch-name>
Als Basis des Branches wir der aktuell aktive Branch hergenommen. Wenn sonst keine anderen Branches vorhanden sind ist es der „master“ Branch.
Unterschiede zwischen 2 Branches
git diff <branch1> <branch2>
Beispiel
Gehen wir von einem neuem, leeren Ordner aus. Als erstes muss das GIT-Repository initialisiert werden.
git init
Danach erstellen wir eine Text-Datei und commiten diese Datei in das Repository und damit in den „master“ Branch.
echo "master" > source.txt
git add source.txt
git commit -m "master file created"
Dadurch haben wir einerseits unseren ersten commit getätigt, welcher im git log zu sehen ist, andererseits ist damit der Start des „master“ Branches festgelegt.
Nun können wir einen weiteren Branch erstellen und unsere schon vorhandene source.txt erweitern.
git checkout -b small-feature
echo "small-feature" >> source.txt
git add source.txt
git commit -m "added small-feature"
Damit sieht unser git log wie folgt aus:
commit 8a77da4bbaf8a3abdc1634e702fbacefac8b4345 (HEAD -> small-feature)
Author: Kevin Pfeifer <kevin.pfeifer@sunlime.at>
Date: Sat Jun 22 13:20:33 2019 +0200
added small-feature
commit 8a0d423e08b93effc490cc343e5f0e08edebcc7a (master)
Author: Kevin Pfeifer <kevin.pfeifer@sunlime.at>
Date: Sat Jun 22 13:19:43 2019 +0200
master file created
(END)
Und der git diff zwischen dem master und dem small-feature Branch sieht wie folgt aus:
diff --git a/source.txt b/source.txt
index 1f7391f..3921d35 100644
--- a/source.txt
+++ b/source.txt
@@ -1 +1,2 @@
master
+small-feature
Dies ist einmal die Basis was Branches sind, wie diese erstellt werden und wie man vergleiche zwischen Branches herstellen kann.
Natürlich ist die hier gezeigt Methode über das Terminal eine nicht ganz „ansprechende“ Variante. Daher haben diverse Code-Editoren zu mindest GIT-Plugins, wenn nicht sogar schon GIT integrierte Funktionalität, welche das verwalten von Branches deutlich vereinfacht. Diese sind natürlich pro Code-Editor immer an unterschiedlichen Stellen zu finden, die Basis bleibt aber immer die gleiche.