AppTestsss

News, Berichte und Videos rund um Apple, iPhone, iPad und Mac

AppTestsss -

Tower – Die Git-UI für den Mac

Tower

Git ist eine tolle Möglichkeit, um mit verschiedenen Personen an einem Code-Projekt zu arbeiten. Die Arbeit mit Kommandos im Terminal ist bei einfachen Aufgaben wie neuen Commits oder dem Branchen eines Repos noch gut möglich, sobald man jedoch kompliziertere Aufgaben erfüllen möchte, ohne sich vorher stundenlang in Kommandos einzuarbeiten, muss man auf eine App mit grafischer Oberfläche setzen, die diese Aufgaben erledigt und die Kommandos unter der Haube zwar noch ausführt, für den Nutzer aber nur als Buttons und Menüs darstellt, und genau das macht Tower, eine Git-UI für den Mac, entwickelt von dem deutschen Entwickler-Studio fournova.

Mit 50€ mag Tower nicht besonders günstig erscheinen, vor allem wenn man die App mit der Konkurrenz im Mac App Store vergleicht, vom Interface her ist sie jedoch in ihrer Kategorie die einzige, die ich ernsthaft und ohne große Einarbeitung sinnvoll benutzen konnte. Noch ein bisschen Hintergrund: Bei der Arbeit an verschiedenen Projekten benutze ich Git und möchte dabei relativ gerne mehr Funktionen als nur git add xy, git commit -m 'xy' und git push xy zy einsetzen. In meinem Workflow nutze ich zum Beispiel eine master-Branch, auf der nur funktionierender Code liegt, dazu kommt eine dev-Branch, auf der entwickelt wird. Mit jedem Feature wird dev in master gemergt und dazu gibt es dann einen Release der, je nach Feature, entsprechend benannt und getagt wird. All diese Aufgaben im Terminal auszuführen ist durchaus möglich, leider aber etwas anstrengend, deswegen nutze ich dafür Tower.

Das Interface von Tower ist angenehm gestaltet, bietet aber viele Buttons, mit denen verschiedene Aktionen ausgeführt werden können. Im Zentrum stehen die geänderten Dateien, die in Form einer Tabelle in der Mitte des Fensters dargestellt werden. Darüber sieht man eine Toolbar mit den wichtigsten Aktionen, die mit Git durchgeführt werden können und die damit immer schnell greifbar sind. In der linken Sidebar befindet sich eine Übersicht über verschiedene Branches und Remote-Verbindungen. Klickt man eine der geänderten Dateien an, wird im unteren Teil des Fensters eine Übersicht mit den Änderungen in der aktuellen Datei. In dem Hauptfenster befinden sich am oberen Rand drei Tabs, mit denen die Ansicht des Hauptbereichs wechseln kann. Neben den geänderten Dateien lassen sich so alle Commits einsehen oder durch die Dateien des Repos browsen, sehr nützlich, um sich einen schnellen Überblick über den Inhalt verschiedener Repos zu verschaffen.

Tower  Commit

Commits

Wie auch im Terminal müssen in Tower alle Dateien, die committet werden sollen, zuerst gestaget werden, das heißt für den nächsten Commit markiert werden. Um eine komplette Datei für den nächsten Commit zu markieren, klickt man in der Übersicht der geänderten Dateien auf den entsprechenden Haken. Möchte man nur einen Teil einer Datei stagen, wählt man diese zuerst aus und markiert dann die entsprechenden Zeilen und fügt sie per Klick auf „Stage Selected“ dem nächsten Commit hinzu. Hat man alle Dateien für den Commit gesammelt, kann man direkt in der Hauptansicht im rechten Bereich eine Nachricht und ein paar Details eingeben. Um den Commit abzusenden, wählt man in der oberen Toolbar den „Commit“-Button aus, bestätigt dann die eingegebene Commit-Nachricht und versendet die Änderungen. Möchte man für die Beschreibung des Commits nicht die Felder am rechten Rand verwenden, können Commit-Message und -Beschreibung auch im Commit-Fenster hinzugefügt werden.

Tags

Einen neuen Tag erstellt man am einfachsten per Command + T, alternativ aber auch über Refs > Add New Local Tag. Es erscheint ein Fenster, in dem man dem Tag einen Namen und eine Beschreibung vergeben kann. Außerdem kann die Branch ausgewählt werden, der der Tag zugeordnet werden soll. Ist dieser Tag dann erstellt muss bei dem nächsten Push zu einer Remote-Repo nur noch ausgewählt werden, dass alle Tags einbezogen werden sollen und er landet auch in dem Remote-Verzeichnis.

Tower  Merge

Branches

Ähnlich verhält es sich mit Branches. Um eine neue Branch zu erstellen geht man im Menü auf Refs > Add New Local Branch oder nutzt den Shortcut Command + B. Im folgenden Fenster gibt man der neuen Branch einen Namen und ordnet ihr eine Branch zu, die den Ursprung des Codes darstellt. Ist die Branch erstellt, befindet sie sich in der linken Spalte unter den anderen lokalen Branches. Um den Code einer Branch in einer andere zu mergen, wählt man die Zielbranch aus und klickt in der Toolbar auf Merge. Im folgenden Fenster wählt man die Branch aus, die in die aktuelle Branch gemergt werden soll, wählt noch aus, ob alle Commits in der neuen Zielbranch als ein Commit dargestellt werden sollen und ob ein Merge-Commit erstellt werden soll und bestätigt die Auswahl.

Fazit

Tower erleichtert die Arbeit mit Git enorm und nimmt dem Nutzer vor allem komplizierte Aufgaben wie Tags, Branchen und Mergen ab. Mein persönlicher Workflow ist nahezu komplett auf Tower umgestellt, nur in sehr seltenen Fällen, in denen es extrem schnell gehen muss und ein Terminal-Fenster bereits geöffnet ist, nutze ich noch das Terminal für einen Commit, sonst erfolgt sämtliche Arbeit mit Git über die App. Kleinere Probleme hatte ich mit der App bisher nur, wenn ich versucht habe, ein Remote-Repository auf einem privaten Server hinzuzufügen, das ein spezielles Passwort benötigte. Tower fragt im ersten Setup nur nach der URL des Remote-Repos, aber nicht nach dem Passwort, weswegen die Verbindungsversuche fehlschlagen. Abhilfe schaffte in meinem Fall eine Änderungen in den Einstellungen unter Remotes, dann dem entsprechenden Repo und einem Klick auf Edit neben der URL, im erscheinenden Fenster können dann Nutzername und Passwort hinterlegt werden.

Mit 50€ ist Tower zwar kein Schnäppchen, für die effiziente Arbeit mit Git macht sich die Ausgabe aber auf jeden Fall bezahlt, Unentschlossene finden auf der Webseite eine 30-Tage-Demo, die in dem Zeitraum uneingeschränkt benutzt werden kann.

Kategorie: Allgemein

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *

*