Gitflow ist ein Konzept zur Organisation von Repositories in Git und eignet sich besonders gut für Projekte, an denen mehrere Personen gleichzeitig arbeiten. Es ermöglicht die parallele Entwicklung von Features, die Vorbereitung von Releases und die Wartung bestehender Versionen.
Es basiert auf zwei Haupt-Branches, dem Master und dem Develop branch. Der Master-Branch repräsentiert immer den produktiven Stand, während sich im Develop-Branch neue Features und Verbesserungen sammeln, die für das nächste Release geplant sind.
Jedes neue Feature bekommt in einem Gitflow-Workflow einen eigenen Branch, der vom Develop-Branch abzweigt. Sobald die Arbeit an einem Feature abgeschlossen ist, wird es zurück in den Develop-Branch gemerged. Bevor ein neues Release ausgeliefert wird, wird vom Develop-Branch ein Release-Branch erstellt, in dem letzte Anpassungen vorgenommen und Tests durchgeführt werden können. Ist das Release fertig, wird der Release-Branch in den Master-Branch gemerged und ein Tag mit der Versionsnummer gesetzt.
Gitflow unterstützt auch die Wartung bestehender Releases durch sogenannte Hotfix-Branches. Diese zweigen direkt vom Master-Branch ab und erlauben es, dringende Fehler im produktiven Stand zu beheben, ohne auf das nächste reguläre Release warten zu müssen. Ist der Hotfix fertig, wird er sowohl in den Master- als auch in den Develop-Branch gemerged.
Das Gitflow-Modell liefert also klare Regeln, wann, wo und wie Arbeit im Repository stattfindet. Insbesondere bei größeren Projekten mit vielen Beteiligten kann dies das Zusammenarbeiten stark vereinfachen. Darüber hinaus bietet es eine klare Struktur und Historie, welche es erleichtert, nachzuvollziehen, wann welche Änderungen stattgefunden haben.
Für die praktische Anwendung von Gitflow gibt es diverse Tools und Erweiterungen für gängige Git-Clients, die bei der Einhaltung des Workflows helfen können.