git show commit in unvergleichlich

Lesezeit: 3 Minuten

Benutzer-Avatar
Manisch

Ich möchte einen bestimmten Commit in Beyond Compare oder einem anderen separaten Diff-Tool sehen, während ich ihn über anschaue git show. Ich habe versucht, in der Hilfe von git show/difftool/config nachzusehen, konnte aber nichts finden. Weiß jemand, wie es gemacht werden kann?

Ich habe mir Git Diff mit Beyond Compare angesehen und Beyond Compare für konfiguriert git difftool aber ich will es auch als tool aus nutzen git show

Benutzer-Avatar
Manisch

Ich habe es geschafft zu verwenden git difftool um Commits zu sehen, die ich normalerweise über gesehen habe git show.

git show $commit wird übersetzt in git difftool $commit^ $commit.

Der obige Befehl zeigt den Unterschied zwischen dem übergeordneten Commit ($commit^) und commit. All dies ist natürlich nach der Konfiguration von Beyond Compare mit difftool.

  • git show $commit ist nicht gleichbedeutend mit git difftool $commit^ $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:51 Uhr


Benutzer-Avatar
Javabrett

Sie können auch einen Alias ​​”showtool” erstellen, um den Aufruf zu umbrechen git difftool:

set +o histexpand
git config --global alias.showtool "!sh -c 'if [ -z \$1 ]; then REVISION="HEAD"; else REVISION="\$1"; fi; git difftool \$REVISION~ \$REVISION' -"

.. dann können Sie ausführen:

git showtool 81e945b

.. oder nur

git showtool

.. als Abkürzung für git difftool 81e945b~1 81e945b um die Änderungen anzuzeigen, die in eingeführt wurden 81e945b mit dem konfigurierten Difftool oder im zweiten Fall git difftool HEAD~1 HEAD

  • Danke, das habe ich gesucht. Ich habe es so erweitert, dass es auch ohne Parameter funktioniert, wie es git show tut: set +o histexpand; git config –global alias.showtool “!sh -c ‘if [ -z \$1 ]; dann REVISION=”HEAD”; sonst REVISION=”\$1″; fi; git difftool \$REVISION~ \$REVISION\’ -“

    – Tomáš Diviš

    7. November 2013 um 12:25 Uhr


  • Danke Tomáš, ich mag diese Erweiterung und habe sie übernommen und die obige Lösung bearbeitet. Ich habe einen verirrten Backslash in Ihrem Code gefunden, den letzten vor dem schließenden ‘, also überprüfen Sie ihn bitte.

    – Javabrett

    11. November 2013 um 2:47 Uhr

  • Ich habe das weiter ausgebaut git-showtool-Repo um Befehle wie zu unterstützen $ git showtool -y :/my\ commit\ message

    – Albfan

    28. Dezember 2014 um 19:47 Uhr


Sobald Sie ein Diff-Tool wie das fantastische p4merge eingerichtet haben, können Sie Folgendes tun:

git diff HEAD HEAD~1

Klappt wunderbar.

Wenn Sie den Commit vorher sehen möchten, können Sie Folgendes tun:

git diff HEAD~1 HEAD~2

Das hat für mich gut funktioniert, um den Diff des letzten Commits zu zeigen

git difftool HEAD~ HEAD

Für andere Commits können Sie ersetzen HEAD mit Commit-Hash zB:

git difftool 1234ABCD~ 1234ABCD

Benutzer-Avatar
Francisco Pugas

Ich denke, dass git show auf dem Werkzeugsatz in der GIT_PAGER-Variablen basiert. Ich verwende Beyond Compare nicht, aber ich denke, dass Sie so etwas versuchen können:

$ GIT_PAGER='bc3' git show <whatever>

Vielleicht sollten Sie die GIT_PAGER-Variable mit einigen zusätzlichen Parametern füllen, die es bc3 ermöglichen, die Eingabe zu verarbeiten.

Es gibt geeignetere Möglichkeiten, den Pager zu persistieren. Diese Frage kann Ihnen weitere Tipps dazu geben.

  • Vielen Dank. Ich probiere es aus und gebe Bescheid.

    – Manisch

    23. September 2011 um 5:24 Uhr

Benutzer-Avatar
Albfan

Basierend auf der Antwort von @javabrett, die ich erstellt habe

https://github.com/albfan/git-showtool

um Befehle wie zu unterstützen

$ git showtool -y :/my\ commit\ message

  • Vielen Dank. Ich probiere es aus und gebe Bescheid.

    – Manisch

    23. September 2011 um 5:24 Uhr

1145410cookie-checkgit show commit in unvergleichlich

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

Privacy policy