GitHub Branching Konzept

Ziel des Branching-Konzepts

Das Branching-Konzept wird verwendet, um eine strukturierte und parallele Entwicklung des Codes zu ermöglichen. Es hilft, Konflikte zu minimieren, die Qualität des Codes zu sichern und den Entwicklungsprozess übersichtlich zu halten.

gitGraph
   commit id: "Initial Commit"
   branch dev
   checkout dev
   commit id: "Feature Entwicklung"
   commit id: "Bugfix"
   checkout main
   merge dev tag: "Merge in Main"
   commit id: "Release"

 Hauptbestandteile des Konzepts

Main Branch

  • Beschreibung: Enthält den stabilen und produktionsreifen Code.

  • Regeln:

    • Änderungen dürfen nur über Pull Requests von anderen Branches vorgenommen werden.

    • Jede Änderung muss durch automatisierte Tests validiert und von einem Teammitglied überprüft werden.

Development Branch (Dev)

  • Beschreibung: Hauptzweig für die Entwicklung neuer Features und Bugfixes.

  • Regeln:

    • Alle neuen Features oder Änderungen werden hier entwickelt und getestet, bevor sie in den Main Branch übernommen werden.

    • Änderungen erfolgen direkt oder über Pull Requests.

Workflow

  1. Erstellung eines Branches:

    • Änderungen erfolgen entweder direkt im Development Branch oder über temporäre Branches.
  2. Entwicklung:

    • Änderungen und Commits werden im Development Branch vorgenommen.
  3. Tests:

    • Automatisierte Tests validieren den Code in der CI/CD-Pipeline.
  4. Code Review:

    • Ein Teammitglied überprüft die Änderungen, bevor sie in den Main Branch gemergt werden.
  5. Zusammenführung:

    • Nach erfolgreicher Überprüfung und Tests wird der Code in den Main Branch integriert.

Vorteile des Branching-Konzepts

  • Strukturierte Entwicklung: Klare Trennung von Entwicklungs- und Produktionscode.

  • Effiziente Zusammenarbeit: Parallele Arbeit an mehreren Änderungen möglich.

  • Risikominimierung: Änderungen werden geprüft, bevor sie in den Main Branch integriert werden.

  • Nachvollziehbarkeit: Klare Commit-Historie und Übersicht über den Entwicklungsprozess.