Untersuchen Sie die git-diff-Ausgabe in einer GUI?

Lesezeit: 5 Minuten

Gibt es ein Programm, mit dem die Ausgabe eines Git-Diff-Befehls in einer GUI untersucht werden kann?

Was ich suche, ist etwas Ähnliches wie SmartGit seine Ansicht der Unterschiede zwischen der Arbeitskopie und dem HEAD anzeigt. Wo jede der Dateien, die sich von HEAD unterscheiden, angezeigt wird und der Unterschied für die fokussierte Datei angezeigt wird.

Ich bin mir nicht sicher, ob es möglich ist, SmartGit dazu zu bringen, die Ausgabe eines “git diff” -Befehls anzuzeigen.

Alt-Text

  • Ich verstehe nicht ganz, wie sich das, wonach Sie fragen, von dem unterscheidet, was Sie gezeigt haben. Gibt es einen Grund, warum Sie SmartGit nicht verwenden können? Oder fragen Sie nach Alternativen zu SmartGit?

    – Greg Hewgill

    11. November 2010 um 23:32 Uhr


  • Ich möchte eine git-diff-Ausgabe in einem ähnlichen Stil wie das Bild sehen. SmartGit zeigt im Wesentlichen nur die Arbeitskopie zu HEAD diff.

    – Frank

    11. November 2010 um 23:38 Uhr


  • Die Diff-Anzeige von SmartGit sieht sehr ähnlich aus verschmelzendie eigenständig ausgeführt werden kann.

    – Endolith

    21. August 2012 um 16:23 Uhr

  • Ich habe eine ähnliche Anforderung. Wir gebrauchen sshfs um Code auf einem Staging-Server zu bearbeiten. Der Versuch, einen beliebigen Git-Befehl auszuführen sshfs ist furchtbar langsam. Aber git-Befehle, die auf dem Server ausgeführt werden, wenn man über ssh eingeloggt ist, funktionieren natürlich ganz normal. Was ich will, ist laufen git diff auf dem Server und erfassen Sie die Ausgabe in einer Datei, z git --no-pager diff > changes.differhalten Sie eine Kopie dieser Datei lokal über sftp oder scpund anzeigen changes.diff in einer GUI wie meld. Anstatt zu laufen git diff oder git difftool Über sshfs. Jeder?

    – drkvogel

    28. August 2018 um 16:41 Uhr

Benutzer-Avatar
Tim Henigan

Ab git v1.7.11 können Sie verwenden git difftool --dir-diff einen Verzeichnis-Diff durchführen

Die folgende Antwort gilt für Git-Installationen, die älter als v1.7.11 sind.


Wie von anderen erwähnt, git difftool kann verwendet werden, um Ihr Diff in einer GUI zu öffnen. Wenn Sie jedoch mehrere Dateien mit Änderungen haben, wird für jede Datei eine separate Instanz der GUI geöffnet.

Ich habe ein Skript geschrieben, um dieses “Feature” zu umgehen und zu ermöglichen, dass alle Dateien in einer einzigen GUI-Instanz geöffnet werden. Sie finden die git diffall Skript auf GitHub.

Sie könnten auch an dieser verwandten SO-Frage interessiert sein:

git difftool, alle Diff-Dateien sofort öffnen, nicht seriell

Wenn Sie eine benutzerfreundliche Benutzeroberfläche wünschen, aber dennoch in Ihrem Terminal bleiben möchten, können Sie Folgendes verwenden:

git tui diff [args...]

!Demo

Installieren

git-tui

sudo snap install git-tui

https://github.com/ArthurSonzogni/git-tui

Haftungsausschluss: Ich bin der Autor.

Es ist ein offenes Quelle Projekt unter der MIT-Lizenz.

  • Das sieht cool aus – kann es auf einem Mac installiert werden?

    – Jeff Wright

    29. Juni 2021 um 21:18 Uhr

  • Wirklich cool. Aber kann ich es mit Windows verwenden? Ich verwende meistens Git Bash in Windows 10 für Git, aber ich glaube nicht, dass Snap in einer solchen Umgebung funktioniert. Danke für so ein tolles Werkzeug

    – API

    17. August 2021 um 9:12 Uhr

  • @AlexFeng Es gibt keine triftigen Gründe, warum dies unter Windows nicht funktionieren würde. Dies ist plattformübergreifend. Dies erfordert jedoch einige Arbeit, um Windows-Binärdateien und -Tests bereitzustellen. Ich kann das CI konfigurieren, um ausführbare Windows-Dateien zu erstellen und zu produzieren. Gibt es jemanden, der es testen und optimieren möchte, um Windows zu unterstützen?

    – ArthurS

    1. September 2021 um 16:14 Uhr


  • @ArthurS Danke für deine freundliche Antwort. Derzeit verwende ich das Standard-Difftool, das mit Git Bash für Windows geliefert wurde, und es bietet einen ähnlichen Diff-Vergleich, wenn auch etwas hässlicher.

    – API

    3. Oktober 2021 um 9:46 Uhr

  • Es wurden Fortschritte erzielt. Die Binärdatei für Windows und Mac wird erstellt. Sehen: github.com/ArthurSonzogni/git-tui/issues/2

    – ArthurS

    15. Oktober 2021 um 13:19 Uhr

Unvergleichlich macht das gut – es sind keine Konfigurationsänderungen am grundlegenden ‘git diff’-Befehl erforderlich, der die .diff-Datei erstellt. Beyond Compare zeigt alle Dateien, auf die in der .diff-Datei verwiesen wird, in einer Dateibaumansicht und den Unterschied für jede Datei, wenn Sie sie auswählen.

Verwenden Sie in Beyond Compare die Menüoption „Tools -> Patch anzeigen“.

JetBrains-Produkte wie IntelliJ, GoLand, PyCharm usw. verfügen alle über ein integriertes Diff-Tool. Wenn Sie einen Unterschied zwischen dem aktuellen Commit und dem vorherigen Commit haben möchten, klicken Sie einfach mit der rechten Maustaste links neben der Codezeile und aktivieren Sie die Anmerkung. Klicken Sie dann auf eine beliebige Anmerkung, um alle Dateiunterschiede anzuzeigen.

Wenn Sie außerdem den Unterschied zwischen dem aktuellen Zweig und einem anderen Zweig wie Origin/Master anzeigen möchten, können Sie dies auch tun. Klicken Sie einfach mit der rechten Maustaste auf das Stammverzeichnis und bewegen Sie den Mauszeiger über das Git-Menü und klicken Sie auf „Mit Zweig vergleichen“ und wählen Sie „Master“. Sie sehen alle Unterschiede zusammen, genau wie beim Anzeigen einer Pull-Anforderung auf Github.

Hier ist eine Seite um dies zu tun – Diffy – Ein Tool zum Teilen von Diffs.

Dort können Sie Ihre Diff-Textausgabe einfügen oder eine Datei hochladen, die die Diff-Ausgabe enthält, dann wird der Diff automatisch in einem Baum-Explorer angezeigt. Es ist gut für Szenarien, in denen Sie keine Berechtigungen zum Installieren von Programmen auf Ihrem Computer haben (danke, Arbeitgeber!).

Benutzer-Avatar
drkvogel

Ich weiß, dass Sie eher nach einer GUI als nach einer TUI suchen, aber vi/vim/vimdiff zeigt eine Diff-Datei mit Syntaxhervorhebung an: view changes.diffwo changes.diff wurde durch Tun geschaffen git --no-pager diff > changes.diff. Ich habe überall nach einer GUI gesucht, die eine dieser Dateien lesen kann, ohne Erfolg – meld hat ein --comparison-file=COMPARISON_FILE Option, aber was auch immer dieses Vergleichsdateiformat ist, es funktioniert nicht mit der regulären (unified) Diff-Ausgabe.

Benutzer-Avatar
Greg Hewgill

git diff hat ein --ext-diff Option, die die Diff-Ausgabe an ein externes Diff-Programm weiterleitet. Zu den beliebten Open-Source-Diff-Programmen, von denen bekannt ist, dass sie mit Git funktionieren, gehören kdiff3 und Verschmelzen.

1143500cookie-checkUntersuchen Sie die git-diff-Ausgabe in einer GUI?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy