Skip to content

GIT

GRIS wird bisher in kleiner Runde entwickelt und nutzt dementsprechend nur zwei Hauptbranches:

  • Master
  • Entwicklung

Daneben können natürlich auch weitere Branches erstellt werden, um Features in eigenen Zweigen zu entwickeln. Diese sollten jedoch immer mit dem gesamten Team abgesprochen und im Umfach begrenzt werden, um einen problemlosen Merge zum Branch-Ende gewährleisten zu können.

Dadurch ergibt sich der folgende Ablauf:

Description

Ausgangspunkt ist immer der Master-Branch von dem jeweils ein Entwicklungs-Branch abgeleitet bzw. aus dem dieser aktualisiert wird wird. Aus dem Entwicklungs-Branch können dann Feature-Brnaches erzeugt werden, die später durch einen Merge wieder in den Entwicklungs-Branch einfließen.

Vor jedem Release fungiert der Entwicklungs-Branch quasi als Sammelbecken für alle Änderungen.

Am Ende gelangen die Änderungen und Features durch einen Merge-Request im GIT-Backend zurück in den Master-Branch. Hotfixes können direkt im Master-Branch (besser natürlich im Entwicklungs-Branch und durch Merge-Request) erzeugt werden. Durch das regelmäßige Ableiten von Master nach Entwicklung fließen diese auch wieder in die Entwicklung ein.

Für die oben gezeigten Zyklen ist es wichtig, dass Branches nicht zu lange laufen, denn der Merge kann durch die übeschneidende Bearbeitung sehr komplex werden. Insofern sollte hier bevorzugt in kurzen Sprints entwickelt werden.

Größere Änderungen am Kern-System und den Basis-Klassen sollten immer sofort in die Entwickler-Runde kommuniziert werden, um Implikationen in anderen Bereichen bereits früh erkennen und gegebenenfalls entgegenwirken zu können.

Jeder Merge-Request in den Master-Branch sollte in der Entwickler-Runde besprochen und anschließend gemeinsam freigegeben werden.

Wichtige GIT-Befehle

Um Updates der Kernelemente zu gewährleiten, sollte die dazugehörigen Komponenten nicht lokal editiert werden. Nach jeder Updatemeldung sollte zeitnah auf dem lokalen Testsystem eine Aktualisierung durchgeführt werden. Code auf den aktuellen Stand bringen (jeweils im GRIS-Verzeichnis):

git pull

Der Status kann mit folgendem Befehl überprüft werden:

git status

Ein wechsel des Branches erfolgt via:

git checkout NameDesBranches

Falls versehentlich Dateien lokal geänderte wurden, können diese zurückgesetzt und erneut aus dem Repository geladen werden. Bis dahin ist keine Aktualisierung mehr möglich. Zum Zurücksetzen und erneutem Laden folgende Befehle verwenden:

git checkout -- index.php
git pull

Merge von Branches

Es kommt häufig vor, dass während der laufenden Weiterentwicklung Fehler (Bugs) in den Produktivsystemen gemeldet werden. Diese werden dann direkt im Master oder in einem davon abgeleiteten Hotfix-Branch behoben. Damit sich danach Master und Entwicklung nicht zu weit voneinander entfernen, findet zum Ende jedes Hotfixes wieder ein Merge von Master/Hotfix nach Entwicklung statt.

Nach Abschluss eines Entwicklungsblock und den entsprechenden Testläufen wird der Merge in umgekehrter Richtung durchgeführt und damit der Master-Branch auf den aktuellen Entwicklungsstand gebracht.

In Tortoise (Windows)

Bsp.: Merge von Master in Entwicklung:

  • In den Zielbranch wechseln
  • Kontextmenü -> TortoiseGIT -> Merge
  • Quell-Branch auswählen
  • Merge starten
  • Bei Bedarf Konflikte auflösen