Git ist eine auf der Kommandozeile basierende Software, aber das bedeutet nicht, dass Sie die Kommandozeile verwenden müssen, um sie zum Laufen zu bringen. Es gibt viele Möglichkeiten! Einige der tiefsten Programmier-Nerds, die ich kenne, ziehen es vor, GUIs für Git zu verwenden (Grafische
Benutzeroberfläche, oder wissen Sie, Software, bei der Sie Dinge sehen und anklicken können), und einige reine Designer, die ich kenne, arbeiten lieber mit der Kommandozeile für Git. Schwören Sie auf Git.
Lassen Sie mich zusammenfassen, was heutzutage die wichtigsten Akteure für Git GUIs zu sein scheinen.
Egal, wie sehr Sie die CLI lieben, schämen Sie sich nicht für GUIs. Viele absolut erstaunliche Programmierer arbeiten gerne mit GUIs, und das ist völlig in Ordnung.
Es gibt eine seltsame Gatekeeping-Tendenz rund um die Kommandozeile. #DevDiscuss
— Ben Halpern 🤗 (@bendhalpern) 28. November 2018
Tower
Ich benutze Tower seit Ewigkeiten und es ist das am häufigsten verwendete Tool. Ich bin mir nicht sicher über die genauen Veröffentlichungstermine all dieser, aber ich habe das Gefühl, dass Tower ein früher Akteur war. Sie sind schon lange dabei und verbessern sich ständig, was ich immer schätze.


Fork
Es ist kostenlos und wird unglaublich aktiv entwickelt.


GitHub Desktop
Dies ist eine 2.0-Version des ursprünglichen GitHub Desktop. Ich hatte einige Einwände gegen die 1.0-Version, da ihre Terminologie seltsam (für mich) war und stark von Git abwich, was verwirrender war, als es wert war (wiederum, für mich). Diese Version bereinigt das meiste davon. Es ist tief in GitHub integriert, so dass sich GitHub-ähnliche Dinge (z. B. Pull-Anfragen) wie erstklassige Bürger anfühlen, aber es funktioniert immer noch problemlos mit jedem Git-Repository.


GitKraken
Dieses hier finde ich ziemlich faszinierend. Ein Upgrade (monatliche Kosten) für das In-App-Tool zur Lösung von Merge-Konflikten scheint es wert zu sein, aber Sie müssen auch upgraden, um auf private Repos zugreifen zu können. Es scheint *extrem* funktionsreich zu sein, aber ich denke, mein Lieblingsteil ist das dunkle Farbschema mit Regenbogen-Akzentfarben.


Sourcetree
Sie könnten von Sourcetree überzeugt sein, wenn Sie ein großer Bitbucket-Nutzer sind, da beide Atlassian-Produkte sind. Ich weiß aber, dass es für jedes Git-Repository funktioniert. Ich stelle mir vor, dass es eine reibungslose Bitbucket-Integration gibt, ähnlich wie die Verbindung von GitHub/GitHub Desktop.


Coda
Man denkt bei Coda nicht wirklich an ein Versionskontrollwerkzeug (es ist eher etwas für direkte FTP-Übertragung), und obwohl ich argumentieren würde, dass die Unterstützung dafür ziemlich halbherzig ist, funktioniert es! Es ist wahrscheinlich, dass die nächste Weiterentwicklung von Coda dies adressieren wird.


VS Code
Versionskontrolle direkt in Ihrer IDE wie dieser zu haben, fühlt sich für mich wie eine Art Zwischenform zwischen GUI und CLI an. Es gibt viele Funktionen, aber es ist keine vollwertige GUI für mich, aber Sie haben ein Terminal direkt integriert, so dass es das fast fördert. Viele Git-Nutzungen sind ziemlich grundlegende Pull-, Commit- und Push-Vorgänge – es ist also ziemlich cool, das direkt in der App zu haben.
(Ich stelle mir vor, dass es viele andere IDEs gibt, die Versionskontrollfunktionen anbieten. PHPStorm usw.)


Atom
Ich weiß nicht recht, was ich von Atom halten soll. Es ist sicherlich sehr beliebt, aber Atom ist das Ding von GitHub, und jetzt gehört GitHub Microsoft, und Microsoft hat VS Code, das ein direkter Konkurrent mit viel mehr Dynamik ist. Außerdem hat GitHub GitHub Desktop, das ebenfalls an Dynamik zu gewinnen scheint. Dennoch, hey, es ist eine großartige Integration und wenn Sie es lieben, lieben Sie es.


Sublime Merge
Von den Machern von Sublime Text! Wie Sublime Text können Sie es quasi kostenlos für immer nutzen, aber in diesem Fall zahlen Sie nur, wenn Sie das dunkle Farbschema wünschen.


Gitbox
Es sieht so aus, als ob das letzte Update 7 Jahre her ist, aber es hat auch großartige Bewertungen. Es sieht so aus, als ob man Code-Difs nicht innerhalb der App selbst sieht, was etwas seltsam ist (die "View Dif"-Sachen haben bei mir sowieso nicht funktioniert). Aber ansonsten schien es funktional einwandfrei zu funktionieren.


TortoiseGit
Hier nur für Windows, daher kann ich keine kurze Bewertung abgeben, aber sie haben eine Menge Screenshots.


SmartGit
Plattformübergreifend und sieht sehr funktionsreich aus (sogar Dinge wie ein Dateizusammenführungstool für Konflikte). Der UI-Snob in mir verzieht das Gesicht ein wenig, wenn ich es sehe.


GitUp
Scheint sehr auf die visuelle Darstellung von Git-Branches fokussiert zu sein und Ihnen die Kontrolle über alle Knoten und deren Handhabung zu geben. Ich werde hier ihr Demo-Video einbetten, das all das zeigt.
Git Extensions
Nur für Windows, daher kann ich keine kurze Bewertung abgeben, aber mehrere Leute haben es erwähnt, so dass es meiner Meinung nach Potenzial hat. Die über 4000 Sterne auf GitHub (es ist Open-Source!) sind auch sehr cool.


Haben Sie Sublime Merge in Betracht gezogen? https://www.sublimemerge.com/
Ich wollte auch Sublime Merge erwähnen. Es ist ein großartiges kleines Werkzeug und integriert sich gut mit Sublime.
Ich benutze auch Sublime Merge. Nachdem ich jahrelang sporadisch verschiedene GUIs ausprobiert und fast sofort aufgegeben habe, da sie alle zu komplex waren, war Sublime Merge erfrischend einfach, und doch hat es die Qualität meiner Commits erheblich verbessert, da "nur ein paar Zeilen Code" in einen separaten Commit zu packen, keine ärgerliche Kommandozeilenreise mehr ist.
Ich benutze GitBox auf dem Mac schon sehr lange, aber in letzter Zeit stürzt es bei mir regelmäßig ab. Es wurde seit 2012 nicht mehr aktualisiert, also war ich gezwungen, eine Alternative zu finden. Bisher ist nichts ganz so wie es war, und das macht mich traurig. : (
TortoiseGit ist meiner Meinung nach auch eine ziemlich nette GUI. Was mich wirklich amüsiert, ist die Tatsache, dass es auf Windows komplett über das Kontextmenü gesteuert wird, was es ziemlich verdammt gut macht. Mit einem einfachen Rechtsklick unter Ihrem Projektverzeichnis können Sie fast alle, wenn nicht alle, Funktionen von GIT aufrufen. Das Design selbst ist nicht das beste, aber es ist einfach und unkompliziert.
Ich kann nicht glauben, dass Sie SmartGit nicht in diese Liste aufgenommen haben, was schade ist, da es eines der voll funktionsfähigsten Git-GUIs ist und den besten Workflow für Git-Submodule auf dem Markt bietet. Es ist vielleicht nicht so hübsch wie einige der anderen, aber es ist wahrscheinlich der beste Git-Client überhaupt.
Und ich kann auch nicht glauben, dass Sie Fork aufgenommen haben, was eine großartige kleine GUI ist, die von einem Paar in ihrer Freizeit entwickelt wurde. Sie ist wunderschön, minimalistisch, aber sehr funktional und kostenlos nutzbar. Was gibt es da nicht zu lieben.
Meinten Sie, dass Sie glauben, dass Fork hinzugefügt wurde? Es ist zweifellos die beste GUI, die ich bisher benutzt habe.
Gitup ist der schnelle. https://gitup.co
Was ist mit Sublime Merge?
Ich denke, Git Extensions ist immer das Beste!!
https://gitextensions.github.io/
Es zeigt Ihnen auch jeden Git-Befehl an, der für die von Ihnen ausgeführte Aktion verwendet wurde.
Genau, es ist der beste Git-Client für Windows. Ich bin immer wieder überrascht, dass er in diesen Vergleichsartikeln über Git-Clients normalerweise ausgelassen wird.
Natürlich hat Atom auch eine Integration. Aber hey, Vim FTW ;)
Ich weiß, dass es für Designdateien und nicht als Entwicklungswerkzeug ist, aber ich würde Abstract als eine anständige Schnittstelle für die Versionskontrolle erwähnen: https://www.abstract.com/
Sourcetree ist *wirklich* fehlerhaft, das Entwicklungsteam ist wirklich schlecht im Testen und Beheben von Fehlern und immer bestrebt, mehr Funktionen hinzuzufügen. Es ist nie stabil, nie...
Ich liebe Tower. Benutze es jeden Tag bei der Arbeit :)
Vergessen Sie nicht Atom, den Texteditor von Github. Er verfügt über Git-GUI-Tools, einschließlich super nützlicher Funktionen für interaktive Commits, die Auflösung von Merge-Konflikten und interaktives Rebasen mit vollständiger Diff-Vorschau. Ich mache 90 % meines Workflows in der CLI und den Rest mit Atom.
Manche Leute mögen Atom nicht, und das ist in Ordnung... aber es ist praktisch für Git.
Wie wäre es mit Erweiterungen? So etwas wie GitLens für VSCode?
GitExtension ist eine der ältesten und besten, die ich in meinen 14 Jahren Erfahrung benutzt habe.
Multiplattform, klein, sauber, etc.
Danke! Neu bei Git-GUIs, daher begrüße ich diesen Artikel mit offenen Armen.
Jeder, der GitKraken noch nicht ausprobiert hat, sollte es unbedingt tun. Es bietet alles, was man von einer Git-GUI erwartet, plus das Tool zur Konfliktlösung ist erstklassig, die Benutzeroberfläche für interaktives Rebasen ist großartig, es erhält regelmäßige Updates, und die Entwickler reagieren sehr gut auf Feedback und Funktionswünsche.
Ich denke, eine der am meisten unterschätzten Funktionen von Git-GUIs ist eine sofortige Baumansicht Ihres gesamten Repos, die das Verständnis, wie ein Merge oder eine Branch das Repo beeinflussen wird, viel intuitiver macht (meiner Meinung nach).
Persönlich benutze ich oft Source Tree für komplexere Operationen (große Rebases, Merges mehrerer Branches usw.), da es eine der wenigen GUIs ist, die Zugriff auf solche Funktionen haben (mit smarten Standardargumenten) zusammen mit nativem GitHub Enterprise Support. Aber wie oben erwähnt, kann es (besonders unter Windows) etwas fehlerhaft sein.
In letzter Zeit benutze ich VS Code zusammen mit der Git-Graph-Erweiterung, da sie ziemlich funktionsreich und sofort verfügbar ist, dort wo ich bereits arbeite.
Ich benutze SmartGit (http://www.syntevo.com/smartgit/) und bin sehr zufrieden.
Ich denke, es lohnt sich zu erwähnen, dass Sourcetree für Mac viel schöner aussieht als der Screenshot in diesem Beitrag (der unter Windows ist) und es auch ein dunkles Farbschema mitbringt.
Ich bin etwas spät dran, aber ich wollte erwähnen, dass ich nach dem Lesen dieses Artikels von Source Tree zu Fork gewechselt bin. Sie sind ziemlich ähnlich, aber ich finde Foks interaktives Rebase intuitiver, und die gesamte App ist VIEL schneller und weitaus weniger fehleranfällig.