Welche Vor- und Nachteile hat die Verwendung von Git Extensions oder TortoiseGit unter einem Windows-basierten Betriebssystem?
Welche Vor- und Nachteile hat die Verwendung von Git Extensions oder TortoiseGit unter einem Windows-basierten Betriebssystem?
Antworten:
Ich kenne GitExtensions nicht, aber ich kann meine Erfahrungen mit TortoiseGit teilen (angedeutet durch den Kommentar von marc_s):
Vorteile:
Nachteile:
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.
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.
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.
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:
Nachteile:
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.
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.
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.
autocrlf
, in der GUI einzustellen (dh bei einer Inszenierung wie GE nicht erneut zu warnen);
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.
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
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.