Visualisierung von Git diff (Linux)

git diff ...zeigt einen Unterschied, aber im Terminal.

Ich möchte eine GUI zur Visualisierung von git diff ....

Insofern habe ich es versucht git diff ... | kompare -. Dies funktioniert, aber der angezeigte Kontext ist nur das, was aus der .diff-Datei verfügbar ist, nicht der vollständige Dateiinhalt.

Es wäre wahrscheinlich besser, den vollständigen Dateiinhalt im Diff-Visualizer sehen zu können.

Ich kann ein Git-Repository zweimal auschecken, zweimal exportieren und mit einem GUI-Diff-Tool (wie Kompare) vergleichen. Aber es ist umständlich. Kennen Sie einen besseren Weg? Endlich könnte ich ein Shell-Skript ausprobieren, das zwei Checkouts und zwei Exporte in ein temporäres Verzeichnis durchführt, aber dies ist nicht die bestmögliche Lösung.

Möchten Sie HEAD mit Ihrem lokal modifizierten Klon vergleichen? Oder zwischen zwei Versionen, möglicherweise entfernt?
@NicolasRaoul Ich möchte zwischen zwei beliebigen Versionen vergleichen. Keine Notwendigkeit für Fernbedienung
Wenn Sie ein GUI-Tool benötigen, führen Sie es aus git difftool --helpund sehen Sie sich die unterstützte Liste an

Antworten (3)

Git selbst wird mit gitk zum Durchsuchen des Repositorys (einschließlich der Anzeige von Diffs von Dingen, die Sie bereits übergeben haben) , gitgui und git difftool [mit dem Sie eines der in Ihrem System vorhandenen Merge-Tools auswählen können] geliefert. Was ich persönlich verwende ist Gitcola , was ich recht praktisch finde:

Gitcola
Gitcola (Quelle: Gitcola ; zum Vergrößern Bild anklicken)

Es verarbeitet nicht nur den Diff-Teil, sondern auch die meisten anderen Aktionen, die Sie in Ihrem täglichen Arbeitsablauf benötigen (Commit, Push, Pull, Tags erstellen usw.).

Für Alternativen möchten Sie vielleicht einen Blick auf 6 nützliche grafische Git-Clients für Linux werfen

Beachten Sie auch, dass Sie, wenn Sie mit dem integrierten Diff-Tool nicht zufrieden sind, jederzeit ein externes konfigurieren können. Ein sehr guter Kandidat dafür wäre Meld – das normalerweise direkt aus den Standard-Repositories der meisten Distributionen verfügbar ist:

Meld Maria
Meld (Quelle: Meld )

Beachten Sie, dass ein solches externes Diff-Tool nichts über Git wissen muss, da die Schnittstelle zum Repository von Git Cola abgedeckt wird und das Diff-Tool nur, nun ja, das von Git Cola übergebene Diff visualisieren muss.

Ich glaube gitk, es zeigt nur eine grafische Darstellung der Zweigbäume, und obwohl das sehr nützlich ist, sehen die angezeigten Unterschiede ziemlich genauso aus wie auf der Befehlszeile. Übersehe ich etwas?
@MichaelScheper die Farben? Oder die Tatsache, dass gitkdas nur der Cliffhanger war und meine Antwort eher Gitcola empfiehlt? :)
Hihi! ☺ Ich sehe Farben, wenn ich dies git diffauf der Kommandozeile mache, daher bietet Gitcola keinen wirklichen Nutzen für mich. Aber vielleicht erlaubt nicht jedes Terminal Farbe, insbesondere Windows-Benutzer, also ja, ich sehe, es ist ein Schritt nach vorne. Aber ich nehme an, ich habe unter „grafischer Darstellung“ die Art von nebeneinander angeordneter, scrollbarer Ausgabe mit unterschiedlicher Länge verstanden, die SmartGit in @Toms Antwort sowie verschiedene IDEs bereitstellt. Aber danke für die Klarstellung und den Nervenkitzel des Cliffhangers. 😉
Nun, wenn Ihnen das eingebaute Diff-Tool @MichaelScheper nicht gefällt – Sie können immer ein externes wie zB Meld konfigurieren . Das muss git dann nicht wissen, da Git Cola sich selbst darum kümmert, es muss nur den Diff visualisieren. Guess meldwürde perfekt zu Ihren Wünschen passen, siehe zB diesen Screenshot . Dort habe ich meine Antwort aktualisiert. Glücklicher? :)
Ja, das ist die, auf die ich gehofft hatte. Ehrlich gesagt verwende ich normalerweise die Befehlszeile und vimdiff, aber für kompliziertere Änderungen erleichtern Tools wie Meld und SmartGit das Leben. Vielen Dank!
Verwenden Sie --dir-diff, um ein ganzes Verzeichnis zu erhalten, andernfalls fragt git Datei für Datei, ob Sie Unterschiede anzeigen möchten: git difftool --tool=meld --dir-diff develop. Eine der Funktionen, die ich mag, ist, dass es keine Syntaxhervorhebung gibt, wodurch es viel klarer wird, wo sich die Änderungen befinden.

Ich würde SmartGit ausprobieren, es sollte alles tun, was Sie wollen. Es ist nicht nur für Linux, sondern auch für Windows und Macs verfügbar. Es ist ziemlich einfach zu bedienen und für nicht-kommerzielle Projekte kostenlos.

SmartGit (kostenlos*)

SmartGit ist ein Frontend für das verteilte Versionskontrollsystem Git und läuft unter Windows, Mac OS X und Linux. SmartGit ist für Entwickler gedacht, die eine grafische Benutzeroberfläche einem Befehlszeilen-Client vorziehen, um mit Git – dem derzeit leistungsstärksten DVCS – noch produktiver zu sein.

SmartGit-Benutzeroberfläche

* Für nicht kommerzielle Arbeiten

Neue Antwort auf eine alte Frage, aber ich bin gezwungen. Eine weitere hervorragende Option ist GitLens

Gestern habe ich das VCS einer anderen IDE verlassen und vscodium installiert, um stattdessen GitLens zu verwenden. Die Art und Weise, wie es kontextbezogen zu der Datei wechselt, die Sie im Editor geöffnet haben, und einen tiefen Commit-Verlauf präsentiert, ist eine brillante Bequemlichkeit.

https://gitlens.amod.io/

https://vscodium.com/

Geben Sie hier die Bildbeschreibung ein