GEC1
Begriff · zeitachse

Branch

Eine eigene Linie im Verlauf, auf der sich etwas ausprobieren lässt, ohne den Hauptstand zu gefährden. Gelingt es, wird der Branch zurückgeführt (Merge); sonst bleibt er liegen oder wird gelöscht.

Kurz

Der Verlauf eines Repositorys muss keine einzelne Linie sein. Ein Branch zweigt an einem Commit ab; neue Commits landen dann nur auf ihm. Der Hauptzweig heißt meist main.

Typischer Fall im Kurs: Eine riskante Idee („Was, wenn die Tür ein Rätsel wird?“) auf einem eigenen Branch ausprobieren. Funktioniert sie, wird der Branch in main gemergt. Funktioniert sie nicht, zurück zu main, und der Hauptstand ist unberührt.

Genauer

Ein Branch ist nur ein Name, der auf einen Commit zeigt und mit jedem neuen Commit weiterrückt. Deshalb ist ein Branch billig: Anlegen kostet keine Kopie des Projekts.

Beim Wechsel des Branches tauscht Git die Dateien im Projektordner aus. Unity bemerkt das und lädt neu. Vorher alles committen; offene Änderungen machen den Wechsel unübersichtlich.

Merge führt zwei Linien zusammen. Haben beide Seiten dieselben Zeilen derselben Datei verändert, entsteht ein Konflikt, und ein Mensch muss entscheiden. Bei Skripten geht das gut. Bei Szenen und Prefabs ist es mühsam, weil ihre Dateien schwer lesbar sind. Daher: Auf zwei Branches nicht gleichzeitig an derselben Szene arbeiten.

In GitHub Desktop sehen

  • Current Branch (oben, Mitte) zeigt den aktiven Branch. Darüber lässt sich wechseln oder mit New Branch ein neuer anlegen.
  • Zurückführen: auf main wechseln, dann Branch › Merge into current branch… und den Experiment-Branch wählen.
  • Im Terminal: git switch -c experiment legt an und wechselt, git switch main wechselt zurück, git merge experiment führt zusammen.

Weiterlesen