Git Flow mit Visual Studio Team Services

Git Flow mit Visual Studio Team Services

Git Flow

Der Git Flow - früher ein Plugin, heute Bestandteil von Git - ist ein bewährter Workflow, wie mit Hilfe von Branches zusammen im Team an einer Software gearbeitet wird. Dies wird auch bei der Initialisierung eines git-Repositories abgefragt:

# Initialisierung eines git Repositories
git init

# Initialisierung von git flow:
git flow init

Anschließend wird man nach den entsprechenden Branches gefragt:

Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]

Die Konkurrenz von Visual Studio Team Services

Bei Open Source Projekten ist der Git-Flow der Quasi-Standard. Kein Repository lässt zu, dass unbeteiligte direkt auf das Quell-Repository/den jeweiligen Branch committen dürfen. Der übliche Weg ist über einen Pull Request.

Plattformen wie GitHub, BitBucket und Co unterstützen den Git Flow von Haus aus. Ein Kopfdruck und Git-Flow ist eingerichtet.

Visual Studio Team Services

Bei VSTS ist dem leider nicht so.

Technisch gesehen ist der Git Flow ein Schutz, dass nicht - ohne entsprechende Berechtigung - auf einen Branch committen werden darf. Genau dies muss in VSTS von Hand eingerichtet werden. Dazu gibt es in der Branch-Verwaltung des Repositories die Funktion der Branch Policies.

Anschließend muss folgendes aktiviert werden:

Jetzt kann nicht mehr direkt auf den - in meinem Beispiel - master-Branch committed werden, sondern nur nich mit Hilfe eines Pull-Requests zB. aus einem feature-Branch heraus. Ebenso muss eine Build-Definition erfolgreich sein, bevor ein anschließender Merge von feature auf master möglich ist.