Git Flow einfach gemacht (SourceTree)

Als ich auf Youtube Xamarin Tutorials anschaute, ist mir ein Empfohlenes video aufgefallen. Ich habe es angeklickt und angeschaut. Schon nach 2 Minuten war ich voll und ganz vom Konzept fasziniert. Für jemandem, der Git erst seit ein Jahr kennt und noch nie etwas mit Branches angestellt hat, fand ich es super interessant wie man mit Hilfe vom Git Flow Model, Repositories einfach strukturieren kann. Jetzt möchte ich euch auch davon überzeugen.

Inhalt:

  • Was ist Git Flow
  • Was ist SourceTree
  • Tutorial: Git Flow in SourceTree

Was ist Git Flow

Git Flow ist eigentlich ein Model oder Workflow, daraus sind aber auch Tools entstanden wie zum Beispiel das folgende Git-Plugin “git-flow”:
https://github.com/nvie/gitflow

Leider kann ich das genaue Video, die ich damals empfohlen bekam, nicht mehr finden, oder besser gesagt, bin ich mich nicht ganz sicher welches Video ich als erstes geschaut habe, da ich nach dem erste Video, sehr viel weitere geschaut habe um das Konzept richtig zu verstehen.

Aber wenn Man noch nichts über GitFlow weiss und vielleicht nicht all zu lange mit Git arbeitet, kann ich ein Video von Atlassian empfehlen.

In diesem Video erklären sie sehr gut, was ein Git Workflow ist, zeigen drei Beispiel davon, eines Davon ist das Git Flow, welches sie sehr gut erklären (Minute 06:00 – 09:35). Ich empfehle von Anfang bis zum 09:35 zu schauen.

Hier noch ein paar zusätzliche Lern-Quellen:

Git Flow V. Driessen
Überblick über GitFlow, von Vincent Driessens Blog Post

Was ist SourceTree

sourctreclo
SourceTree Screenshot von Wikipedia

Ist ein Gratis und nach meiner Meinung der beste Git-Client.
Er gehört zu der Atlassian Familie und ist gratis unter folgende Link herunterzuladen:
https://www.sourcetreeapp.com/ 

Für die, die mehr über SourceTree wissen wollen habe ich ein kurzes (3 min) Video von Atlassian ausgesucht, auch dieses Video für Mac ist, ist den unterschied zu der Windows Version Minimal:

Tutorial: Git Flow in SourceTree

Git Flow von hand zu machen ist recht aufwendig und nicht all zu einfach, zum Glück gibt es im SourceTree dafür eingebaute Funktionen.
Es hat sogar ein “Git Flow” Button in SourceTree:

SourceTree GitFlowIcon
SourceTree “Git Flow” Button

Git Flow Initialisieren

Um Git Flow in SourceTree zu initialisieren, muss man nur das Repository auswählen, und auf den “Git Flow” Button klicken.
Dann kommt ein kurzer Dialog, wo man die Prefixes/Branch Namen definieren kann, aber ich empfehle die Defaults zu behalten.

 

Init Dialog
Intitialisierungsdialog

Danach ist das Repository(local) schon mit Git Flow initialisiert.

NewBranches
Git Flow initialisiert, neue Branch “develop”

Feature Branch erstellen

Alle Git Flow Sachen geht im SourceTree über den “Git Flow” Button.
Nach der Initialisierung sieht der Dialog anders aus wenn man auf dem Button wieder klickt:

GitFlowButton
Next Flow Action Dialog

Wenn wir jetzt ein Feature erstellen möchten, klicken wir natürlich auf dem “Start New Feature” Button und danach ein Namen(zB: “feat#15”) dafür eingeben.

Danach wird für uns ein Feature Ordner mit unsere neue Feature Branch (local) erstellt.
Diese Feature Branch ist wie ein Fork von der “Develop” Branch.

FeatureBranch
Neue Feature Ordner und Branch

 

 

Um ein Feature nach Bearbeitung abzuschliessen, muss man nur wieder auf der “Git Flow” Button klicken und “Finish Feature” wählen. Dabei wird den Feature Branch in der Developer Branch gemerged und danach gelöscht.

Release Branch erstellen

Der Prozess um ein Release Branch zu erstellen ist wieder genau gleich wie den vom Feature, aber was passiert ist ein bisschen anders.

Beim “release” Branch:

  • wird der Code nach dem “Finish Release” in der “master” und “develop” Branch gemerged.
  • kann es gleichzeitig nur ein “release” Branch geben.

Hotfix Branch erstellen

Der Prozess ist genau gleich wie beim erstellen eines Feature Branchs, aber dabei wird den Code vom “master” geforked und nicht vom “develop”.
Nach dem “Finish Hotfix” wird der code wieder zurück in den “master” gemerged, aber auch in den “develop” Branch.

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s