Git Flow
Git Flow ist ein Git-Branching-Modell, das Teams dabei helfen soll, Software besser zu verwalten und zu veröffentlichen.
Git Flow wurde 2010 von Vincent Driessen vorgeschlagen und macht durch eine Reihe standardisierter Branch-Benennungen und Workflows die Entwicklungs-, Test- und Release-Prozesse geordneter und effizienter.
Git Flow besteht hauptsächlich aus den folgenden Branch-Typen:master、develop、feature、release、hotfix。
Git Flow-Installation
Linux
Debian/Ubuntu:
sudo apt-get install git-flow
Fedora:
sudo dnf install gitflow sudo apt-get install git-flow
macOS
Unter macOS können Sie Homebrew verwenden, um Git Flow zu installieren:brew install git-flow
Installation aus dem Quellcode
Wenn Git Flow im Paketmanager Ihrer Distribution nicht verfügbar ist, können Sie es auch aus dem Quellcode installieren:
git clone https://github.com/nvie/gitflow.git cd gitflow sudo make install
Nach der Installation können Sie mit dem folgenden Befehl überprüfen, ob Git Flow erfolgreich installiert wurde:
git flow version
Windows
Unter Windows können Sie Git Flow auf folgende Weise installieren:
-
Verwenden Sie Git for Windows: Git for Windows enthält Git Flow. Sie könnenGit for WindowsGit installieren und dann Git Bash verwenden, um Git Flow zu nutzen.
-
Scoop verwenden: Wenn Sie den Scoop-Paketmanager verwenden, können Sie Git Flow mit dem folgenden Befehl installieren:
scoop install git-flow
-
Chocolatey verwenden: Wenn Sie den Chocolatey-Paketmanager verwenden, können Sie Git Flow mit dem folgenden Befehl installieren:
choco install gitflow
Git-Flow-Branching-Modell
masterBranch:
- Behalten Sie stets einen stabilen und releasefähigen Zustand bei.
- Jedes Mal, wenn eine neue Version veröffentlicht wird, stammt sie von
developBranch zusammenführen inmasterBranch.
developBranch:
- Dient zur Integration aller Entwicklungs-Branches.
- Stellt den neuesten Entwicklungsfortschritt dar.
- Feature-Branches, Release-Branches und Hotfix-Branches zweigen alle von hier ab und werden schließlich wieder hierher zusammengeführt.
featureBranch:
- Dient der Entwicklung neuer Features.
- from
developBranch-Erstellung, nach Abschluss der Entwicklung zurückmergendevelopBranch. - Namenskonventionen:
feature/feature-name。
releaseBranch:
- Dient der Vorbereitung neuer Versionsveröffentlichungen.
- from
developDer Branch wird erstellt, abschließende Tests und Fehlerbehebungen werden durchgeführt, und dann wird er zurückgemergt nachdevelopundmasterBranch, und mit einer Version taggen. - Namenskonventionen:
release/release-name。
hotfixBranch:
- Wird verwendet, um dringende Probleme zu beheben.
- from
masterBranch-Erstellung, Zurückmergen nach Abschluss des FixesmasterunddevelopBranch, und mit einer Version taggen. - Namenskonventionen:
hotfix/hotfix-name。

Prinzipien der Branch-Operationen
- Jeder Commit auf dem Master-Branch sollte mit einem Tag versehen werden, und der Develop-Branch wird auf Basis von Master erstellt.
- Nach Abschluss eines Feature-Branches wird er zurück in den Develop-Branch gemergt, und der Branch wird normalerweise gelöscht.
- Ein Release-Branch wird auf Basis von Develop erstellt und für Tests und zum Beheben von Fehlern verwendet. Nach dem Release wird er zurück in Master und Develop gemergt, und ein Tag wird erstellt, um die Versionsnummer zu markieren.
- Der Hotfix-Branch wird auf Basis von Master erstellt. Nach Abschluss wird er zurück in Master und Develop gemergt und mit einem Tag versehen.1。
Beispiele für Git-Flow-Befehle
- Feature-Branch starten:
git flow feature start MYFEATURE - Feature-Branch abschließen:
git flow feature finish MYFEATURE - Release-Branch starten:
git flow release start RELEASE [BASE] - Release-Branch abschließen: in Master und Develop mergen, Tag setzen, Release-Branch löschen.
- Einen Hotfix-Branch starten:
git flow hotfix start HOTFIX [BASE] - Hotfix-Branch abschließen: in Master und Develop mergen, Tag setzen, Hotfix-Branch löschen.
Git-Flow-Workflow
1. Git Flow initialisieren
Initialisieren Sie zunächst Git Flow im Projekt. Sie können ein Git-Flow-Plugin verwenden (zum Beispielgit-flow), um die Arbeitsabläufe zu vereinfachen.
git flow init
Bei der Initialisierung müssen Sie Branch-Namensregeln und den Standard-Branch festlegen.
2. Einen Feature-Branch erstellen
Wenn Sie mit der Entwicklung eines neuen Features beginnen, erstellen Sie aus demdevelopBranch einen Feature-Branch.
git flow feature start feature-name
Nach Abschluss der Entwicklung mergen Sie den Feature-Branch zurück in dendevelopBranch und löschen den Feature-Branch.
git flow feature finish feature-name
3. Einen Release-Branch erstellen
Wenn Sie sich darauf vorbereiten, eine neue Version zu veröffentlichen, erstellen Sie vomdevelopBranch aus einen Release-Branch.
git flow release start release-name
Führen Sie auf dem Release-Branch abschließende Tests und Korrekturen durch. Sobald er für die Veröffentlichung bereit ist, mergen Sie den Release-Branch zurück zudevelopundmasterBranch, und mit einer Version taggen.
git flow release finish release-name
4. Einen Fix-Branch erstellen
Wenn ein Problem gefunden wird, das einen dringenden Fix erfordert, erstellen Sie vommasterBranch aus einen Fix-Branch.
git flow hotfix start hotfix-name
Nachdem der Fix abgeschlossen ist, mergen Sie den Fix-Branch zurück in denmasterunddevelopBranch und taggen Sie ihn mit einer Version.
git flow hotfix finish hotfix-name
ExampleOperation
Das Folgende ist ein umfassendes Beispiel für die praktische Verwendung von Git Flow.
Git Flow initialisieren:
git flow init
Feature-Branches erstellen und abschließen:
git flow feature start new-feature # 开发新功能 git flow feature finish new-feature
Release-Branches erstellen und abschließen:
git flow release start v1.0.0 # 测试和修复 git flow release finish v1.0.0
Fix-Branches erstellen und abschließen:
git flow hotfix start hotfix-1.0.1. # 修复紧急问题 git flow hotfix finish hotfix-1.0.1
Vor- und Nachteile
Vorteile
- Klares Branch-Modell: Klare Regeln für die Benennung und Nutzung von Branches machen den Entwicklungsprozess gut organisiert.
- Entwicklung und Release isolieren: Die Trennung von Entwicklungs- und Release-Prozessen verringert die Auswirkungen von Unsicherheiten in der Entwicklung auf Releases.
- Versionsverwaltung: Jedes Release und jeder Fix wird mit einem Versionslabel versehen, was die Nachverfolgung und Verwaltung erleichtert.
Nachteile
- Komplexität: Für kleine Teams oder einfache Projekte kann das Branching-Modell von Git Flow übermäßig komplex erscheinen.
- Häufiges Merging: In großen Teams kann häufiges Zusammenführen von Branches zu einer Zunahme von Merge-Konflikten führen.
Git Flow ist ein strukturiertes Branch-Management-Modell, das Teams dabei hilft, den Softwareentwicklungs- und Release-Prozess besser zu verwalten, indem klare Branches und Workflows definiert werden. Obwohl es einige Komplexität hinzufügt, bietet Git Flow starke Unterstützung und Verwaltungsfunktionen für große Projekte und Teamzusammenarbeit.
Weitere Erweiterungen