TortoiseGit vs Git Extensions

77

Welche Vor- und Nachteile hat die Verwendung von Git Extensions oder TortoiseGit unter einem Windows-basierten Betriebssystem?

Shawn Mclean
quelle
6
TortoiseGit ist eine gute Wahl, wenn Sie sich bereits an zB TortoiseSVN gewöhnt haben. Es ist eine Shell-Erweiterung - Sie müssen also über den Windows Explorer arbeiten. GitExtensions ist eine vollständige Windows-App, die Sie separat vom Windows Explorer starten können. Aber es fühlt sich für mich manchmal etwas "seltsam" an, nicht wirklich so, wie ich es von einem Windows-Dienstprogramm erwartet habe - und es stürzt ab und friert viel ein (zumindest für mich).
marc_s

Antworten:

99

Ich kenne GitExtensions nicht, aber ich kann meine Erfahrungen mit TortoiseGit teilen (angedeutet durch den Kommentar von marc_s):

Vorteile:

  • Hervorragende Integration in Windows (es ist eine Shell-Erweiterung)
  • Fast die gleiche Benutzeroberfläche wie TortoiseSVN (wenn Sie TortoiseSVN bereits verwendet haben, wissen Sie, was Sie erwartet).

Nachteile:

  • Es wird Ihnen schwer fallen zu verstehen, wie man Git benutzt.

Das Problem mit TortoiseGit ist, dass Leute, die mit TortoiseSVN gearbeitet haben, denken, dass alles genau wie in SVN funktionieren wird (oder sollte) ... und am Ende nie wirklich verstehen, wie man mit Git arbeitet. Aus persönlicher Erfahrung ist das Unternehmen, in dem ich arbeite, nach 2 Jahren von SVN auf Git umgestiegen, und jeder einzelne Entwickler, der TortoiseGit verwendet hat, wusste nicht wirklich, was er tut, und hat manchmal seine lokalen Repositories durcheinander gebracht. Am Ende haben sie TortoiseGit fallen lassen und Zeit damit verbracht, Git "auf die harte Tour" (Shell, msysGit unter Windows) zu lernen, und seitdem sind alle glücklich.

Fazit: Verwenden Sie msysGit einfach direkt und lernen Sie git richtig. Sie werden in Zukunft viele Kopfschmerzen vermeiden.

Rafael Ibraim
quelle
10
nette Nachteile argumentieren +1
Josua Marcel C
1
Als jemand, der den anderen Weg eingeschlagen hat, von der Verwendung von Git Extensions bis zur Verwendung von TortoiseSVN für ein anderes Projekt, fand ich die Verwendung von TortoiseSVN sehr irritierend. Neigte dazu, das SVN-Repository zu vermasseln, obwohl ich mich schließlich daran gewöhnt hatte. Aus meiner Erfahrung und Rafaels Kommentaren denke ich, dass es definitiv ein Impedanz-Missverhältnis zwischen der Art und Weise, wie Schildkröten Dinge tun, und Git gibt.
Simon Tewsi
4
Persönlich verwende ich TortoiseGit nur zum Festschreiben (zum Überprüfen des Festschreibens) und der Protokollansicht, für andere Vorgänge verwenden Sie die Befehlszeile
2
TortoiseGit fällt es nicht schwer zu lernen, es funktioniert einfach wie TortoiseSVN. Übrigens benutze ich TortoiseGit und Gitextension.
Cheung
2
@ user133408: dafür kannst du einfach "gitk" und "git-gui" von git bash verwenden. Keine Verwendung für aufgeblähte Software, die den gesamten Computer blockiert, den Datei-Explorer verlangsamt und Dateisperren verursacht.
v.oddou
26

Meine Firma versuchte beides und ließ Tortoise Git schnell fallen. Es stürzte viel öfter ab. Die Programmierer behaupten, dass Tortoise Git nicht fähig genug ist, aber ich habe das selbst nicht überprüft. Aber ich habe selbst viele Abstürze gesehen.

Die Codierer bevorzugen Git Bash, die anderen verwenden aber hassen Git Extensions. Obwohl sogar einige von ihnen zusätzlich Git Bash eröffnen. Git Bash ist unvermeidlich, um die Fortschrittszähler zu sehen.

Git Extensions hat keine Option, Fortschrittszähler während eines Pulls anzuzeigen. Nur mit Git-Erweiterungen sitzen Sie also vor einer rätselhaften Nicht-Fortschrittsanzeige und wissen nicht, was passiert und ob etwas fehlgeschlagen ist. Das Schlimmste ist ein fehlendes oder falsches Passwort: Mit Git Extensions können Sie einfach ewig warten und dieselbe leuchtende Leiste anzeigen, als ob es etwas zeitaufwändiges wäre. Ein weiterer Horror von Git Extensions ist der häufige Abbruch mit "out of memory", wenn viele große Dateien versioniert und mit Rebase gezogen werden. Nach einem solchen Abbruch sind nicht codierende Benutzer immer mit Problemen überfordert. Viele Dateien, die sie nicht geändert haben, werden als geändert angezeigt, und die Sperrdatei verhindert, dass sie sich mit dem Problem usw. befassen.

Meiner Meinung nach sind beide GUI-Tools unausgereift.

klaus dorn
quelle
Als Update werden die Fehlermeldungen zwar immer noch etwas verwirrend angezeigt, sie werden jedoch jetzt ordnungsgemäß angezeigt.
Teo Klestrup Röijezon
6
Git Extensions unterstützt die Anzeige des Fortschritts beim Ziehen vor langer Zeit. Die Unterbrechung des Git-Prozesses wurde ebenfalls behoben.
KindDragon
1
Wenn KindDragon auf mehreren Websites denselben Benutzernamen verwendet, ist er einer der Entwickler von Git Extensions, sodass seine Informationen wahrscheinlich korrekt sind.
Simon Tewsi
Ich habe TortoiseGit ab 2016 verwendet und seitdem war es für mich immer ein Kinderspiel.
März 2377
19

Sie möchten Git-Erweiterungen aus einem wichtigen Grund - es zeigt Ihnen die grafische Ansicht des Festschreibungsprotokolls (siehe unten). Ohne diese grafische Ansicht glaube ich nicht, dass die meisten Leute, die neu in Git sind, jemals erfahren werden, was mit Zweigen, Commits, Rebasing, Kirschernte usw. los ist (ich weiß, dass ich es nicht getan habe).

Sie werden einen Teil Ihrer Arbeit auch über die Befehlszeile erledigen wollen. Es ist am besten, git praktisch zu verwenden, da die gesamte Hilfe, die Sie erhalten, auf der Befehlszeile basiert.

Trotzdem können Sie Tortoise Git auch verwenden (vorausgesetzt, es funktioniert), da alle dieselben ausführbaren Befehlszeilendateien aufrufen und auf dasselbe Git-Repository reagieren.

Die meisten IDEs bieten auch Git-Unterstützung. JetBrains IDEA fügt hervorragend Änderungslisten und andere Funktionen hinzu.

Git Extensions-Protokollansicht

studgeek
quelle
6
Dies ist eine sehr wichtige Überlegung. Aufgrund seines CVS / SVN-Erbes ist TortoiseGit datei- und verzeichnisorientiert. Aber Git selbst ist es nicht - es ist geschichtsorientiert, und Dateien und Verzeichnisse sind einfach das, worum es in dieser Geschichte geht. Tatsächlich ist jedes Git-Tool, dessen Hauptzugriff über das Datei- / Verzeichnis-Kontextmenü erfolgt, fehlerhaft. Dies schließt auch Git-Erweiterungen ein.
Jeremy
13

Ich habe nicht viel Erfahrung mit TortoiseGit, aber ich habe es installiert und verwende derzeit GitExtensions v2.21.

Die größten Vorteile bei der Verwendung von GitExtensions:

  • visuelle gitk-artige grafische Anzeige von Codelines und Zweigen mit allen wichtigen Informationen in Registerkarten, sodass Sie nicht mehr mit den unfreundlichen SHAs arbeiten müssen.
  • Die Möglichkeit, als Administrator und alle anderen Benutzer auf demselben PC zu installieren, kann wie jeder normale Benutzer verwendet werden.
  • integrierte Shell-Integration mit Windows Explorer
  • Sofortige Integration in Visual Studio (Windows Eclipse-Benutzer benötigen nur msysgit, da sie über eine eigene GUI verfügen, um die Notwendigkeit von GitExtensions zu ersetzen.)
  • Einfach zu bedienendes Installationsprogramm, das mit allen erforderlichen und erforderlichen Funktionen geliefert wird, um sofort zu starten (SSH-Client, KDiff, msysgit).
  • Integration mit GitHub (Fork, Clone, Pull sind alle optimiert)

Nachteile:

  • Die Dokumentation hält nicht mit den neuen Funktionen Schritt, die ständig hinzugefügt werden. Zum Beispiel weiß ich immer noch nicht, wie ich die Skriptfunktionen verwenden soll.

Damit wir nicht vergessen, dass es sich um ein völlig kostenloses Programm handelt, das uns als Option ohne Bedingungen angeboten wird, sehe ich keine Gründe für solch hohe Erwartungen, als wären wir bezahlte Kunden? Ich habe einige der Abbrüche und Einfrierungen gesehen, die der vorherige Benutzer erwähnt hat, aber ich glaube, dass der Großteil davon in Version 2.24 behoben wurde. Viele der Abbrüche und fehlgeschlagenen Aktionen sind nicht die Schuld von GitExtensions, sondern eher ein Symptom für ein Systemproblem außerhalb von GitExtensions (z. B. falsch konfiguriertes SSH-Setup, Probleme mit Dateiberechtigungen auf dem Server, auf dem sich das Remote-Repo befindet usw.). Zum Beispiel gab es ein Mal, als ich einen einfachen Push ausführte, der zu Fehlschlägen und Abbrüchen führte. Es stellte sich heraus, dass die Fernbedienung, auf die ich pushen wollte, einen sehr langen Pfadnamen hatte, was Probleme für den Mac-Server verursachte, auf dem sich das Repo befand.

Trotzdem waren meine Erfahrungen mit GitExtensions ziemlich positiv. Ich finde, die oben beschriebenen Vorteile haben es sich gelohnt, gelegentliche Abbrüche und Einfrierungen in Kauf zu nehmen, bis die Fehler behoben sind.

Phileo
quelle
12

Ich kann nicht mit Git Extensions sprechen, da ich es nie benutzt habe. Hatte einige Probleme mit reinem GIT. Zum Beispiel konnte GVIM nicht integriert werden. Tortoise Git hat einen integrierten Editor und ein Diff-Tool (was erstaunlich ist), das ist also eine sehr schöne Annehmlichkeit. Ich mochte die Verzweigungsdiagramme im Scott Chacon-Buch und hoffte, dass TGit ein ähnliches Diagramm haben würde. Sie haben ein Werkzeug zum Anzeigen von Zweigen, aber es ist nicht so schön wie das im Buch.

Eine Sache, die zu beachten ist, ist, dass das Mischen der beiden Methoden keinen Schaden anrichtet, da TGit nur eine Hülle über GIT ist. Ich benutze TGit für fast alles, aber tauche in GIT für Befehle ein, die umständlich sind oder die ich in TGit einfach nicht gut verstehe. Aber selbst wenn Sie TGit verwenden möchten, ist es, wie oben erwähnt, immer noch wichtig, zuerst die Grundlagen von GIT zu verstehen. Ich habe beispielsweise die ersten drei Kapitel des Chacon-Buches gelesen (kostenlos online unter http://progit.org/book/ oder beim Kauf bei Amazon erhältlich). Wenn Sie wie ich sind, möchten Sie sie vielleicht mehrmals lesen, um das Paradigma aufzugreifen. Es ist nicht allzu kompliziert, aber es unterscheidet sich sehr von früheren VCS.

TGit ist nie auf mich abgestürzt, wie es bei einigen anderen Rezensenten der Fall war, aber dann waren meine Repos klein. Es hat meine Commit-Kommentare mehr als einmal aufgefressen, was ein Benutzerfehler gewesen sein könnte. Da Sie zurückgehen und Kommentare erneut bearbeiten können, war dies nur ärgerlich und die Bequemlichkeit einer grafischen Benutzeroberfläche mit Fenstern wert, die viele Informationen auf einen Blick anzeigen.

Dave March
quelle
Ich möchte nur kommentieren, dass ich die gleiche Erfahrung gemacht habe. Verwenden Sie TGit, es sei denn, es ist einfacher, Bash für weniger typische Vorgänge zu verwenden. TGit hat ein großartiges Protokoll, ein großartiges eingebautes Diff und ist jetzt im Jahr 2016 solide.
Raj
10

Nur um einigen der obigen Bemerkungen entgegenzuwirken:

Mit der richtigen Erwartung bietet TortoiseGit eine hervorragende Benutzeroberfläche für die Arbeit mit Git unter Windows. Es ist kein Ersatz für TortoiseSvn, sondern eine verbesserte Benutzeroberfläche gegenüber dem, was mit gitk + git-gui erreicht werden kann (was als Teil der Kern-Git-Funktionalität betrachtet werden kann und in msysgit verfügbar ist). Das einzig schlechte, was ich sehe, ist, dass Sie sich nicht alle genauen Befehle zum Auschecken / Wiederherstellen / Zusammenführen usw. merken müssen, da dies alles sehr bequem über die GUI erledigt werden kann (worauf es ankommt). Die Putty / SSH-Probleme haben mehr mit der minderwertigen Unterstützung von SSH unter Windows zu tun und sind nicht nur bei TortoiseGit zu finden.

prusswan
quelle
1
Ebenfalls zugunsten von TortoiseGit : 1) Auf älteren PCs ohne Lastverzögerungen von mehreren Sekunden wie GE ist es viel schneller. 2) Es ermöglicht das Bearbeiten der aktuellen Datei im Standard-Diff-Viewer. 3) Es gibt viel mehr Optionen im Kontextmenü; 5) Es verfügt über konfigurierbare Spalten im Commit-Viewer. 5) Es macht etwas aus autocrlf, in der GUI einzustellen (dh bei einer Inszenierung wie GE nicht erneut zu warnen);
Annarfych
Verwenden Sie es einfach mit openssh anstelle von Kitt und seien Sie glücklich
Marc.2377
7

Ich benutze GitExtensions. Ich habe TortoiseGit nicht verwendet, aber einer unserer anderen Entwickler liebt es und weigert sich, GitExtensions zu verwenden. Seine Argumentation ist 1) Es ist vertraut; 2) Es hat eine großartige Windows Explorer-Integration.

Verwenden von GitExtensions Ich verwende die Windows Explorer-Integration normalerweise nur für drei Dinge:

1) So erstellen Sie ein neues lokales Repository (Kontextmenüpunkt Git Init Here, das eigentlich ein Git für Windows-Befehl ist; GitExtensions befindet sich über Git für Windows);

2) Um die GUI von Git Extensions (das Suchfenster) zu öffnen;

3) So klonen Sie ein Remote-Repository in ein lokales Repository (Kontextmenüpunkt Git Extensions> Clone).

Für so ziemlich alles andere habe ich nur die GitExtensions-GUI eingerichtet und arbeite von dort aus.

Die Entwickler von GitExtensions behaupten, dass fast jeder Befehl über die GUI ausgeführt werden kann. Dies ist nicht ganz richtig, aber ich muss nur ein- oder zweimal im Monat für komplexe Aufgaben in die Befehlszeilenschnittstelle wechseln.

In einigen Fällen vereinfacht die GUI komplexe Aufgaben, indem die Komplexität der zugrunde liegenden Git-Befehle ausgeblendet wird. Dies beinhaltet manchmal das Kombinieren mehrerer Git-Befehle zu einer einzigen Aktion. Beispiel: Erstellen von Submodulen, bei denen die GUI das Hinzufügen eines Submoduls kombiniert, es initialisiert und in einer einzigen Aktion aktualisiert. In einem anderen Fall vereinfacht die GUI eine Aufgabe, indem sie einen Befehl bereitstellt, der Git fehlt - Entfernen eines Submoduls (in Git müssen Sie die verschiedenen Dateien wie .gitmodules und .git / config manuell bearbeiten, um ein Submodul zu entfernen). Es würde mich interessieren, ob TortoiseGit komplexe Aufgaben auf ähnliche Weise vereinfacht.

GitExtensions hat auch eine ziemlich einfache Visual Studio-Integration. Ich weiß nicht, ob TortoiseGit das tut. Es gibt einen separaten Git-Quellcodeverwaltungsanbieter für Visual Studio 2008 und 2010, der eine wesentlich umfassendere Visual Studio-Integration bietet. Nachdem ich den Git Source Control Provider installiert habe, verwende ich ihn jedoch nie. Die einzige GitExtensions-Integration, die ich in Visual Studio verwende, befindet sich in der Symbolleiste, um die GitExtensions-GUI mit dem entsprechenden Repository zu öffnen. Ich werde mit Visual Studio auf einem Monitor arbeiten und GitExtensions auf dem anderen öffnen.

Ab mindestens Version 2.32 zeigt GitExtensions die Anzahl der nicht festgeschriebenen Dateien in seiner Symbolleiste an. Ich habe zuvor 2.24 verwendet, das diese Funktion nicht hatte und sehr praktisch ist. Gibt sofortiges Feedback darüber, ob nicht festgeschriebene Änderungen vorliegen oder nicht.

Simon Tewsi
quelle
5

Für eine schnelle und einfache Kompilierung, Anpassung und Erstellung von Erweiterungen ist GitExtensions besser (C #) als TortoiseGit (Visual C ++ MFC).

Aus Gründen der Portabilität ist GitExtensions besser (.NET unter Windows / Mono unter Linux / Mac) als TortoiseGit (nur Win32 / 64).

Verwenden Sie TortoiseGit, um die Symbolüberlagerung im Explorer zu verwenden

Für die Leistung einiger Funktionen ist TortoiseGit besser, da es eine statische / dynamische Bibliothek aufruft, um das Ergebnis aus dem Repository abzurufen, während GitExtensions nur die Befehlszeile git.exe aufruft, die einen höheren Overhead hat.

Um von TortoiseSVN zu migrieren, ist TortoiseGit besser vertraut als GitExtensions

linquize
quelle
1
Sie benötigen keine professionelle Edition von Visual Studio, um GitExtensions zu kompilieren, aber Sie benötigen TortoiseGit
Linquize
1
Die Professional Edition ist erforderlich, wenn Sie die Shell-Erweiterung von GitExtensions erstellen möchten.
Kernteile
TortoiseGit ruft libgit2 und somit ist es VIEL schneller (Caps und Fett absichtlich)
Marc.2377
0

DATUM: 27.08.2011.

Zu diesem Zeitpunkt funktioniert Tortoise Git überhaupt nicht und das Problem auf der Google Code-Website wurde seit einem Monat nicht mehr beachtet: http://groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1 .

Das Feld 'Load Putty Key' aus dem Popup bei Tortoise Gits erster Verwendung zum Klonen einer Site (und zum Entwickeln) ist ausgegraut. Es wurde also kein privater Schlüssel gefunden und die Fehlermeldung lautet "Verbindung getrennt". ERFOLGREICH !!!!

Git Bash funktioniert perfekt, wenn auch konsolenbasiert. Und wenn alle oben genannten Personen davon sprechen, das Git-Konzept bei der Verwendung von Tortoise Git nicht zu verstehen, würde ich mich einfach davon fernhalten, auch wenn ich die letzten 3 Stunden nicht berücksichtigt habe, die ich damit verbracht habe, Tortoise Git für einen Entwickler zum Laufen zu bringen. Er muss Konsolen-Git lernen oder die Straße runter gehen.

Ich habe es in 15 Minuten zum Laufen gebracht und bin nur ein Hacker, der versucht, Programmierer einzustellen ;-)

PS, Eclipse verfügt über alle drei wichtigen "Connectors" des Versionskontroll-Repositorys und ist ein sehr guter Editor.

user327312
quelle
4
DATUM: 2012-9-4: Ist dieses Problem ein Jahr später behoben? Ich sage, TortoiseGit verbessert sich
Linquize