Tool-Tipp: Git-Oberfläche Fork
CLI und Anforderungen an das GUI
Kurz vorab: Als gelernter Medieninformatiker und Mac-Nutzer lege ich durchaus Wert auf eine schöne grafische Benutzeroberfläche, die sich gut in macOS einfügt. Aber keine Sorge: Fork gibt es auch für Windows. ;-)
Als ich im Studium das erste Mal mit Git in Berührung kam, hat mir die Nutzung über die klassiche Kommandozeile massiv geholfen, die Prozesse im Hintergrund zu verstehen, sodass ich lange komplett ohne Git-GUI gearbeitet habe. Mit der Zeit kam der Wunsch auf, den Commit-Graph und Dateiänderungen einfacher einsehen zu können. So machte ich mich auf die Suche nach einem GUI.
Was waren meine Anforderungen?
- Ich wollte ein GUI haben, mit dem ich mir den Verlauf und aktuellen Stand der Branches übersichtlich anzeigen lassen kann. Und das am liebsten in einer Graph-Ansicht, da hier die Verzweigungen und der Verlauf am Besten erkennbar werden. Man sieht sofort, welcher Branch auf welchem Commit aufbaut und was parallel in anderen Branches passiert.
- Als nächstes wollte ich die Änderungen eines Commits und die aktuellen Änderungen im Arbeitsverzeichnis einsehen können. So erhält man einen schnellen Überblick, was man geändert hat und kann im Optimalfall Teile einer Datei stagen – einfacher als über die CLI.
- Commits erstellen, pushen, pullen, mergen, rebasen … all das war erstmal keine Anforderung, da ich hier mit der CLI ganz glückich war. Wenn das GUI diese Anforderungen auch abdeckt ... okay, vielleicht gewöhne ich mich ja daran.
Die lange Suche – was ist gut, was nicht?
Der erste Kandidat war natürlich GitHub Desktop, bei dem mir aber die Graph-Ansicht fehlt. Zudem hatte ich immer das Gefühl, dass das UI eher für kleinere Displays gedacht ist.
Das nächste Tool war Sourcetree von Atlassian. An diesem bin ich auch sehr lange hängen geblieben. Sourcetree bietet genau die Graphen-Ansicht, die ich mir vorstelle. Es zeigt mit Klick auf einen Commit die geänderten Dateien und Änderungen in diesen Dateien an. Außerdem hat man in den Einstellungen viele Anpassungsmöglichkeiten. Meine wichtigsten Anforderungen waren also erfüllt. Trotzdem war ich noch nicht zu 100 Prozent glücklich, denn es waren viele kleine Kompromisse notwendig.
Fork – der kleine Unbekannte
Im Anschluss bin ich auf Fork gestoßen. Auf den ersten Blick sehr ähnlich zu Sourcetree, in vielen Details aber angenehmer.
Hier ein paar meiner Highlights:
- Die Oberfläche passt sich gut in macOS ein: Die Buttons in der Menüleiste halten sich an das typische Look & Feel und es werden viele Funktionen genutzt, die das OS bereitstellt. Besonders das Tab-Feature nutze ich oft.
- Die schöne Graphen-Ansicht mit den schnellen Anpassungsmöglichkeiten und der Side-By-Side-View der Änderung eines Commits
- Das partielle Stagen von Dateien durch Auswählen der Chunks oder Markieren der Zeilen
- Das einfache Öffnen eines Repos über die CLI unter macOS
Inzwischen habe ich mich so sehr an das GUI gewöhnt, dass ich tatsächlich auch Commits mit Fork erstelle und pushe. Zudem ist das Interface für den interaktiven Rebase erstaunlich gut und hat einige Vorteile im Vergleich zum CLI. Man kann die Reihenfolge der Commits einfach durch Drag and Drop oder per Shortcut ändern. Ebenso ist es möglich, den Status für mehrere Commits gleichzeitig anzupassen. Das ist vor allem praktisch, wenn man mehrere Commits squashen möchte.
Fazit
Nachdem ich viele GUIs für Git ausprobiert habe, bin ich mit Fork auf das Tool gestoßen, mit dem ich gerne und oft arbeite. Selbst Aufgaben, die mir in anderen Oberflächen zu umständlich waren und für die ich daher lieber die CLI verwendet habe, erledige ich inzwischen oft mit Fork. Für mich lohnt sich also der Preis im Vergleich zu den kostenfreien Tools, auch wenn die Unterschiede auf den ersten Blick nicht so groß erscheinen. ;-)
Welches Git-GUI benutzt du und warum? Ich freue mich auf Anregungen!