Wie kann ich die Ausgabe von „git show“ in einem Diff-Viewer wie meld, kdiff3 usw. anzeigen?
Lesezeit: 3 Minuten
Knöpfe840
Es gibt viele SO-Fragen, die zeigen, wie die Ausgabe von a angezeigt wird git diff Befehl in einem Diff-Viewer wie meld using git difftool oder andernfalls. Ich frage nicht nach git diff obwohl.
Ich möchte die Ausgabe von sehen git show <previous commit sha1> in einem Diff-Viewer wie meld. Wie kann ich das machen?
gitk, gitgund andere fallen mir ein…
– Twalberg
9. Juli 2013 um 21:40 Uhr
Sie können verwenden git difftool um ein einzelnes Commit anzuzeigen.
Angenommen, Sie möchten den Commit mit sha1 sehen abc123:
git difftool abc123~1 abc123
(~1 weist git an, zum vorherigen Commit zu wechseln, also abc123~1 ist das Commit davor abc123)
Wenn Sie dies regelmäßig verwenden, können Sie einen benutzerdefinierten Git-Befehl erstellen, um es einfacher zu machen:
Erstellen Sie eine Datei namens git-showtool irgendwo auf deinem $PATH mit folgendem Inhalt:
git difftool $1~1 $1
Geben Sie dieser Datei Ausführungsberechtigungen:
chmod +x ~/path/to/git-showtool
Verwenden Sie den Befehl git showtool <sha1 or tag or ...>
Profitieren.
Außerdem sollten Sie überprüfen, welchen Commit Sie sich ansehen und ob er viele geänderte Dateien enthält. weil meld nacheinander nacheinander geöffnet wird
– Benutzer2291758
19. Mai 2015 um 14:16 Uhr
Leider bekomme ich folgenden Fehler. Starten Sie ‘p4mergetool’ [Y/n]? Y /mingw64/libexec/git-core/git-mergetool–lib: eval: line 124: Unerwartetes EOF beim Suchen nach passendem `”‘ /mingw64/libexec/git-core/git-mergetool–lib: eval: line 125: Syntaxfehler: Unerwartetes Dateiende
– jpierson
6. März 2017 um 16:19 Uhr
git show $commit ist nicht gleichbedeutend mit git difftool $commit~1 $commit wenn wir einen Merge-Commit überprüfen. git show präsentiert den Merge-Commit in einem speziellen Format, wie es von produziert wird git diff-tree --cc $commit. Sehen git-scm.com/docs/git-show
– Abdel Rauf
18. Juli 2018 um 5:52 Uhr
Du kannst den … benutzen ^ Eltern-Commits auch gerne machen git difftool abc123^ abc123. Bewerben Sie sich mehrmals, um den Baum höher zu steigen abc123^^^
– jokul
3. August 2018 um 14:57 Uhr
Jemand sollte dieses nette und einfache Tool mit Mainline-Git zusammenführen
– Ericcurtin
22. Oktober 2020 um 12:50 Uhr
Aufbauend auf der Antwort von Georgebrock können Sie in .gitconfig einen Alias erstellen, etwa so:
Dann kannst du es mit ausführen git showtool abc123 (ohne dafür ein separates Shell-Skript erstellen zu müssen). Wenn Sie die Revision weglassen, wird sie standardmäßig auf HEAD gesetzt.
Ich stimme zu, dass ein Git-Alias wahrscheinlich besser wäre. Danke für den Vorschlag.
– Knöpfe840
15. Januar 2015 um 19:31 Uhr
Ich bevorzuge diese Lösung sehr 🙂 Und ich habe –dir-diff an den Befehl difftool übergeben, um es für mich noch bequemer zu machen.
– Sturmreiter
2. August 2017 um 7:58 Uhr
Übersetzen Sie den Vorschlag des Schützen für die weniger versierten Git, fügen Sie dies zu Ihrem Global hinzu .gitconfig Datei, in der sich befindet C:\Benutzer[user name] Wenn Sie ein Windows-Benutzer sind:
ich benutze rev-parse um komplexe Drehzahlausdrücke transparent zuzulassen.
Ich habe die entfernt $1 am Ende, da der Alias aufgerufen wird, gefolgt von den Argumenten; es bleibt unbemerkt, wenn es nur verwendet wird $1 aber bricht $* Verhalten.
Dies ermöglicht es, schöne Dinge zu tun, wie:
git showtool :/some nasty bug
Die Antwort von Geogrebrock ist in Ordnung, kann aber so verbessert werden:
commit=$1
shift
git difftool $commit~1 $commit $@
Legen Sie es in einer ausführbaren Datei (chmod +x) irgendwo in $PATH ab.
Jetzt können Sie zusätzliche Argumente übergeben, z. B. angeben, welche Dateien Sie sehen möchten (und andere ignorieren):
gitk
,gitg
und andere fallen mir ein…– Twalberg
9. Juli 2013 um 21:40 Uhr