Versionskontrolle mit Git ist mittlerweile eine „Selbstverständlichkeit“: Nahezu jedes Softwareprojekt nutzt heute Git, und nahezu jeder Entwickler kennt Git bis zu einem gewissen Grad. Das erklärt, warum ich manchmal diese Frage höre, wenn ich erzähle, was ich beruflich mache: „Einen Desktop-Client für Git? Wofür brauche ich das? Das mache ich doch auf der Kommandozeile!“
Wenn ich Glück habe, steht mir dann ein Computer zur Seite. Und anstatt eine ausschweifende Antwort zu geben, erledige ich ein paar Dinge in Tower, unserem Desktop-Client für Git.
Wer jemals ein „Interactive Rebase“ durchgeführt hat, ist erstaunt, wie einfach das in Tower ist: Man zieht und lässt per Drag & Drop Commits zusammenführen oder neu anordnen. Und wer „Interactive Rebase“ noch nie genutzt hat – weil es auf der Kommandozeile zu kompliziert und umständlich war –, versteht nun, dass es ein sehr wertvolles Werkzeug ist.
Oder ich mache einen Fehler: Lösche versehentlich einen Branch oder vermassle einen Merge auf schlimmste Weise. Und ich drücke einfach CMD+Z, wie in einem Texteditor, um das gerade angerichtete Chaos rückgängig zu machen.
Die Leute fangen dann an zu erkennen, dass die eigentliche Frage nicht lautet: „Komme ich mit Git auf der Kommandozeile zurecht?“ Die wichtigeren Fragen sind:
- Kann ich die gesamte Macht von Git nutzen? (Auch die fortgeschrittenen Funktionen, die schwer zu bedienen sein mögen, aber sehr wertvoll sein können...)
- Kann ich produktiv mit Git arbeiten? (Ohne Parameter nachschlagen zu müssen, ohne zu viel Zeit mit meinen Workflows zu verbringen...)
- Kann ich einfach mit Git arbeiten? (Ohne zu viel darüber nachdenken zu müssen...)
Wir – ein kleines Team von nur 9 Leuten – haben die letzten 10 Jahre damit verbracht, diese Fragen zu beantworten, indem wir Tower gebaut haben.
Fehler rückgängig machen
Eine der großartigsten Funktionen von Git ist, dass es Ihnen erlaubt, fast alles rückgängig zu machen. Es erfordert jedoch einiges an Erfahrung, um genau zu wissen, wie man seine bestimmte Art von Chaos beseitigt: Ein fehlgeschlagener Merge muss anders aufgeräumt werden als ein gelöschter Branch!
Nach langem Arbeiten daran erlaubt Ihnen Tower nun, praktisch alles rückgängig zu machen – einfach durch Drücken von CMD+Z! (Hinweis: Die Funktion „Undo“ ist eine relativ neue Ergänzung und zuerst in der Mac-Version von Tower verfügbar. Sie wird bald auch für Windows erscheinen.)
Egal, ob Sie einen Merge vermasselt, versehentlich einen Branch gelöscht, eine wertvolle lokale Änderung verworfen, zu früh einen Branch auf einem Remote veröffentlicht oder einfach etwas committed haben, das Sie nicht hätten tun sollen – Ihr Lebensretter ist so einfach wie „CMD+Z“ und immer verfügbar.
Die Macht von Interactive Rebase
Interactive Rebase ist ein wunderbares Beispiel für die mächtigeren Funktionen von Git. Es erlaubt Ihnen…
- alte Commits zu bearbeiten (sowohl ihre Nachrichten als auch ihre Changesets!)
- mehrere Commits zu einem zusammenzuführen
- Commits neu anzuordnen
- ...und sogar nicht mehr benötigte Commits zu löschen!
All dies kann sehr helfen, eine Codebasis sauber und strukturiert zu halten. Aber als sehr mächtiges Werkzeug ist Interactive Rebase auch ein Beispiel für eine Git-Funktion, die ziemlich kompliziert zu bedienen ist!
Viele Anfänger lassen sich von dieser Komplexität abschrecken – was bedeutet, dass sie natürlich die Vorteile der Funktion verpassen! Viele erfahrene Entwickler kennen und nutzen Interactive Rebase; aber da die Funktion schwer zu bedienen ist, kostet sie sie viel Zeit und/oder sie machen gelegentlich Fehler.
In Anbetracht dessen hatten wir zwei Ziele für die Integration von Interactive Rebase in Tower: Zum einen wollten wir so viel wie möglich von seiner Komplexität reduzieren. Und zum anderen wollten wir die Funktion leicht zugänglich machen.
Das Ergebnis ist, dass Interactive Rebase jetzt direkt in die „Commit-Historie“ integriert und über einfache Drag & Drop- und Menüoptionen zugänglich ist.
Zahllose Entwickler, die Interactive Rebase auf der Kommandozeile gar nicht genutzt hätten, verwenden es jetzt täglich in Tower.
Schnellaktionen
Fast unabhängig von seiner Größe bedeutet die Arbeit in einer Codebasis, dass viel Zeit mit Suchen verbracht wird: zum Beispiel nach einem bestimmten Branch (aus vielen Branches) oder einer bestimmten Datei (aus vielen Dateien).
Tower ermöglicht es Ihnen, die meisten Ihrer täglichen Aufgaben zu erledigen, ohne sich durch Daten wühlen zu müssen – und sogar ohne die Hände von der Tastatur zu nehmen. Der Dialog „Schnellaktion“ nimmt fast jede Eingabe entgegen und ermöglicht es Ihnen, einfach darauf zu reagieren
- Geben Sie einen Branch-Namen ein und er bietet an, ihn auszuchecken.
- Geben Sie einen Dateinamen ein und er bietet an, ihn in der Dateihistorie anzuzeigen.
- Geben Sie einen Commit-Hash ein und er bietet an, die Details dieses Commits anzuzeigen.
Viele Aufgaben direkt von der Tastatur aus erledigen zu können, ohne suchen und sich durch haufenweise Daten wühlen zu müssen, kann das Leben als Entwickler erheblich erleichtern.
Konflikte souverän lösen
Jeder hasst diesen Moment, wenn ein Merge (oder Rebase) stoppt und Sie mit einer Reihe von Konflikten zurücklässt 😱 Mehrere Fragen tauchen dann schnell im Kopf des armen Programmierers auf
- Was sind meine Änderungen? Was sind die eines anderen?
- Was ist eigentlich passiert?
- Warum ich?
Obwohl Tower zugegebenermaßen nicht alle diese Fragen beantworten kann, bietet es einen speziellen „Konflikt-Assistenten“, der die Situation viel verständlicher macht.
Sie können leicht sehen, woher Änderungen stammen und den Konflikt einfach lösen, indem Sie wählen, welche Version Sie verwenden möchten (oder zu einem speziellen Merge-Tool wechseln). Es macht die Dinge viel einfacher, wenn Merge-Konflikte auf diese Weise visualisiert werden, anstatt ein abstraktes Durcheinander zu sein.
Produktivität steigern
Bei der Entwicklung und Verbesserung von Tower streben wir stets danach, die Dinge für unsere Benutzer einfacher zu machen – und sie produktiver. Nehmen wir einige Beispiele, wo sich das in Tower zeigt
- Keine Passwörter, Tokens, SSH-Keys mehr: Sie können Ihre GitHub / GitLab / Bitbucket / Azure DevOps-Konten ganz einfach mit Tower verbinden. Sobald sie verbunden sind, müssen Sie sich nie wieder mit Passwörtern, Authentifizierung, Tokens, Benutzernamen und SSH-Keys herumschlagen. Das Klonen und Interagieren mit einem Remote-Repository wird dann zu einer Sache von einem Klick.
- Staging & Verwerfen in einer Zeile: Es gibt eine goldene Regel in der Versionskontrolle: Wenn Sie einen Commit erstellen, sollten Sie nur Änderungen aus einem einzigen Thema einbeziehen (und nicht mehrere Themen in einem Commit mischen, was es extrem schwierig macht zu verstehen, was tatsächlich passiert ist). Mit der Möglichkeit, einzelne Codeblöcke und Zeilen aus Ihren Änderungen zu stagen / unstagen / zu verwerfen, ermöglicht Ihnen Tower die Erstellung granularer, präziser Commits.
- Ein neuer Diff-Viewer: In einem sehr aktuellen Update haben wir unseren internen Diff-Viewer komplett überarbeitet. Er hebt jetzt Inline-Änderungen hervor, ermöglicht es Ihnen, Leerzeichenänderungen ein-/auszublenden, kann die vollständige Datei anzeigen und ist mit Themes komplett anpassbar!
- Automatisierungen für langweilige Dinge: Tower kümmert sich um viel mühsame Arbeit rund um Git. Um nur zwei Beispiele zu nennen: Sie müssen weder regelmäßig neue Updates vom Remote abrufen, noch dürfen Sie vergessen, uncommitted Änderungen zu stagen, bevor Sie pullen/switchen/mergen... Tower erledigt das automatisch für Sie.
Wenn ich an meine liebsten Anwendungen denke, die ich selbst nutze, haben sie alle einige Dinge gemeinsam: Sie erleichtern mir das Leben, machen mich produktiver und ermöglichen mir, fortgeschrittene Dinge zu tun, die ich ohne sie nur schwer erledigen könnte. Ich bin froh und dankbar, dass viele unserer Benutzer Tower zu ihren Lieblings-Apps zählen!

Wenn Sie Tower ausprobieren möchten, laden Sie es von unserer Website herunter und testen Sie es 30 Tage kostenlos. Und wenn Sie Schüler oder Lehrer sind, können Sie Tower kostenlos nutzen!
Es ist irgendwie seltsam, Microsoft unter den Unternehmen aufzulisten, die es nutzen. Ist der Client Ihres eigenen Unternehmens nicht gut genug?