git-flow Spickzettel

erstellt von Daniel Kummer

Effizientes Branching mittels git-flow von Vincent Driessen

Übersetzungen: English - Castellano - Brazilian Portugues - 繁體中文(Traditional Chinese) - 简体中文(Simplified Chinese) - 日本語 - Türkçe - 한국어(Korean) - Français - Italiano - Nederlands - Русский (Russian) - Deutsch (German) - Català (Catalan) - Română (Romanian) - Ελληνικά (Greek) - Українська (Ukrainian) - Tiếng Việt (Vietnamese) - Polski - العربية - Azərbaycanca (Azerbaijani)

Über

git-flow ist ein Set aus Git-Erweiterungen, welches komplexe Repository-Arbeiten nach Vincent Driessens Branching-Modell ermöglicht. mehr

★ ★ ★

Dieser Spickzettel veranschaulicht die grundlegende Nutzung und den Ablauf von git-flow Operationen.

★ ★ ★

Grundlegende Tipps

★ ★ ★

Einrichtung

★ ★ ★

OSX

Homebrew
$ brew install git-flow-avh
Macports
$ port install git-flow-avh

Linux

$ apt-get install git-flow

Windows (Cygwin)

$ wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash

Du benötigst wget und util-linux um git-flow zu installieren.

Für eine detaillierte git-flow Installationsanleitung, besuche bitte das git flow wiki.

install git-flow

Erste Schritte

git-flow muss initalisiert werden, um das Projektsetup anzupassen.

★ ★ ★

Initialisierung

Fange an mit git-flow zu arbeiten, indem Du es innerhalb eines bestehenden Git-Repository initialisierst:

git flow init

Dabei musst Du einige Fragen bezueglich der Namenskoventionen Deiner Branches (Entwicklungszweige) beantworten.
Es wird empfohlen, die Standardwerte zu verwenden.

Features

★ ★ ★

Entwicklung neuer Features

Neue Features werden vom 'develop'-Branch abgeleitet.

Starte die Entwicklung eines neuen Features mittels

git flow feature start MYFEATURE

Dieser Befehl erstellt einen neuen Feature-Branch basierend auf 'develop' und wechselt in diesen.

Fertigstellung eines Features

Beende die Entwicklung eines Features. Dies führt zu folgenden Aktionen:

  • Zusammenführen von MYFEATURE in den 'develop'-Branch (Merge-Prozess)
  • Entfernt den Feature-Branch
  • Wechselt zurück in den 'develop'-Branch
git flow feature finish MYFEATURE

Veröffentlichen eines Features

Entwickelst Du ein Feature in Zusammenarbeit?
Veröffentliche Dein Feature auf einem entfernten Server, so dass es auch von anderen verfolgt werden kann.

git flow feature publish MYFEATURE

Holen eines veröffentlichten Features

Hole ein Feature, welches von einem anderen Nutzer veröffentlicht wurde.

git flow feature pull origin MYFEATURE

Du kannst ein Feature unter Verwendung von

git flow feature track MYFEATURE

auf 'origin' verfolgen.

Erstelle ein Release

★ ★ ★

Beginne ein Release

Um ein neues Release zu beginnen, benutze den git flow release Befehl. Mit diesem wird ein Release-Branch vom aktuellen 'develop'-Branch erstellt.

git flow release start RELEASE [BASE]

Du kannst optional einen [BASE] Commit sha-1 Hash bereitstellen, um ein Release von diesem Commit zu starten. Der Commit muss sich im 'develop'-Branch befinden.

★ ★ ★

Es ist ratsam, den Release-Branch nach der Erstellung zu veröffentlichen und damit anderen Entwicklern die Möglichkeit für Commits zu geben. Mache es ähnlich wie bei einem Feature-Branch mit dem Befehl:

git flow release publish RELEASE

(Du kannst ein entferntes Remote-Release mittels
git flow release track RELEASE verfolgen.)

Fertigstellung eines Releases

Das Beenden eines Releases ist einer der größten Schritte im Git-Branching-Prozess. Es bewirkt folgende Aktionen:

  • Zusammenführen des Release-Branches zurück in den 'master'-Branch. (Merge-Prozess)
  • Markiert (Tagged) das Release mit seinem Namen
  • Zurückführen des Releases in den 'develop'-Branch (Merge-Prozess)
  • Entfernt den Release-Branch
git flow release finish RELEASE

Vergesse nicht Deine Tags mittels git push --tags zu pushen.

Hotfixes

★ ★ ★

git flow hotfix start

Ähnlich wie auch die anderen git-flow Befehle, wird ein Hotfix mittels

git flow hotfix start VERSION [BASENAME]

begonnen. Das VERSION-Argument markiert hierbei den neuen Hotfix-Release-Namen. Optional kannst Du auch einen BASENAME spezifizieren.

Fertigstellung eines Hotfixes

Mit dem Beenden eines Hotfixes wird dieser in den 'develop'- und 'master'-Branch zusammengeführt (Merge). Nebenbei wird der 'master'-Branch mit einem Tag, welcher die Hotfix-Version beinhaltet, markiert.

git flow hotfix finish VERSION

Befehle

git-flow commands

Backlog

★ ★ ★

★ ★ ★

Kommentare powered by Disqus