Git vs eGit - Welches Git soll ich mir aneignen?

Hi,

Ich möchte mich demnächst in das Thema Versionsverwaltung (mit git) einarbeiten (samt Github etc.). Ich weiß inzwischen soviel, dass es einmal die Konsolenbasierte Variante „git“ gibt und einmal die GUI-Variante per Eclipse namens „eGit“.
Programmieren tu ich in Eclipse (aber vielleicht ändert sich das ja mal, was dann zur Folge hat, dass ich mein eGit-Wissen wegschemeißen kann…).

Welche git-Variante soll ich mir anschauen? Das Thema scheint ja etwas umfangreicher zu sein, daher will ich direkt auf das richtige Pferd setzen :wink:

Ist die Konsolenvariante extrem umständlich?

git auf der Konsole ist nicht schwer. eGit ist nicht viel anders. Ich habe eGit immer nur für Basics verwendet (add, commit, branch, merge). Alles andere auf der Konsole ^^

Git bleibt Git, ob du das jetzt über ein CLI oder über ein GUI bedienst ändert daran nichts. Die meisten Git-Nutzer benutzen wohl das CLI, da man dort mehr Kontrolle hat und außerdem effizienter arbeiten kann (naja, Windows Nutzer sehen das anders…). Weiterhin lernt man auf der Konsole vermutlich schneller wie die Git-Befehle zusammenarbeiten, kann ich aber nicht wirklich beurteilen, da ich noch nie einen graphischen Clienten benutzt habe (von Difftools mal abgesehen).

Ansonsten kann ich für Win und Mac noch Sourcetree empfehlen.

Naja, das Git, Git bleibt kann man so nicht sagen. EGit ist die GUI für JGit und JGit ist eine Neuimplementierung in Java. Es gab auch schon Inkompatibilitäten zwischen Git für Windows (was von den mysys-Leuten bereitgestellt wird) und JGit. Des Weiteren ist es mit JGit so, dass so genau keiner weiß, und es auch nicht angegeben ist, mit welcher minimalen,maximalen (Linux)Git Version das kompatibel ist. Die Beteiligten implementieren die Features wohl auch danach wie sie die benötigen.
Und bei EGit selbst fallen (mir zumindest) störende Kleinigkeiten auf, du hast z.B. keine Auswahl für Kommandozeilenflags (die man manchmal benötigt), bei Merges mit Konflikten wird oft die Konfliktview nicht geöffnet, bei Rebases schon, dann kann man manchmal bei bestimmten Merges keinen Kommentar angeben etc.

Git für Windows ist praktisch das Windows-Kompilat, wobei sagen wir lieber, es ist eine Version die für Windows aufgebohrt wurde da (Linux)Git wohl auf einige Linuxfunktionen angewiesen ist. Wenigstens ist dort aber im Release-Log immer aufgeführt welche Dinge fehlen die Git unter Linux schon besitzt.

Da ich mich momentan intensiver mit Git beschäftigen muss, da das wahrscheinlich bei uns auf der Arbeit eingeführt werden soll, plädiere ich, sowie TheDarkRose auch, für die Verwendung von Sourcetree. Die Installation ist sehr einfach, ST lädt auch, wenn gewünscht, automatisch die Git für Windows Version nach und auch die Git für Windows Konsole lässt sich darüber problemlos öffnen. Git für Windows selbst ist dann auch ein Punkt, da es zumindest keine Neuimplementierung ist, und wenn Git schon mal Bugs hat dann will ich wenigstens konsistente Bugs auf allen Systemen.

Und Allgemein wirst du um die Kommandozeile sowieso nicht herumkommen, allein schon wg. der Kommandozeilenparameter und weil jedes Buch oder Tutorial Git von der Kommandozeile lehrt.

Dass die Git da komplett neu implementieren und nicht nur ein GUI-Frontend für das CLI bereitstellen wusste ich nicht. Dann ist es klar, dass es zu Inkompatibilitäten kommen kann. In dem Fall bin ich erst recht der Meinung, dass man mit dem CLI des „offizielen Git“ anfangen soll.