829 Stimmen

Wie kann ich die "git diff"-Ausgabe mit meinem bevorzugten Diff-Tool/Viewer anzeigen?

Wenn ich tippe git diff Ich möchte die Ausgabe mit dem visuellen Diff-Tool meiner Wahl (SourceGear "diffmerge" unter Windows) anzeigen. Wie konfiguriere ich Git für diese Aufgabe?

120 Stimmen

In allen neueren Versionen von git können Sie "git difftool" statt "git diff" verwenden. Damit wird ein visuelles Diff-Programm geöffnet.

0 Stimmen

Bezüglich des neuen Skripts difftool habe ich unten eine Antwort hinzugefügt: stackoverflow.com/questions/255202/

2 Stimmen

Gitx - gitx.frim.nl . Das war's.

2voto

Ich habe das ganze Zeug hier ausprobiert (mit tkdiff) und nichts hat bei mir funktioniert. Also habe ich das folgende Skript geschrieben, tkgitdiff. Es tut, was ich brauche.

$ cat tkgitdiff
#!/bin/sh

#
# tkdiff for git.
# Gives you the diff between HEAD and the current state of your file.
#

newfile=$1
git diff HEAD -- $newfile > /tmp/patch.dat
cp $newfile /tmp
savedPWD=$PWD
cd /tmp
patch -R $newfile < patch.dat
cd $savedPWD
tkdiff /tmp/$newfile $newfile

1voto

abo-abo Punkte 19517

Ich habe dieses Bit in der Datei ~/.gitconfig für eine lange Zeit:

[diff]
    external = ~/Dropbox/source/bash/git-meld

Mit git-meld :

#!/bin/bash
if [ "$DISPLAY" = "" ];
then
    diff $2 $5
else
    meld $2 $5
fi

Aber jetzt bin ich es leid, immer die Meldung in einer grafischen Umgebung, und es ist nicht trivial, das normale diff mit diesem Setup aufzurufen, also bin ich zu diesem gewechselt:

[alias]
    v =  "!sh -c 'if [ $# -eq 0 ] ; then git difftool -y -t meld ; else git difftool -y $@ ; fi' -"

Mit dieser Einrichtung funktionieren Dinge wie diese:

git v
git v --staged
git v -t kompare
git v --staged -t tkdiff

Und ich kann immer noch die gute alte git diff .

1voto

Bilal and Olga Punkte 3151

Yo uso Kompare auf Ubuntu:

sudo apt-get install kompare

Zwei Zweige zu vergleichen:

git difftool -t kompare <my_branch> master

0voto

Jiqing Tang Punkte 11

Sie können Folgendes ausprobieren xd das ein GUI-Wrapper für Git/SVN diff ist. Es ist no ein Diff-Tool selbst.

Sie laufen xd wenn Sie Folgendes ausführen möchten git diff o svn diff und es wird Ihnen eine Liste von Dateien und ein Vorschaufenster angezeigt, und Sie können jedes beliebige Vergleichsprogramm starten, einschließlich tkdiff, xxdiff, gvimdiff, Emacs (ediff), XEmacs (ediff), Meldung , Diffus , Kompare y KDiff3 . Sie können auch ein beliebiges benutzerdefiniertes Tool ausführen.

Leider unterstützt das Tool Windows nicht.

Offenlegung : Ich bin der Autor dieses Tools.

0voto

drzaus Punkte 22843

Wenn Sie bereits ein Vergleichsprogramm für Dateitypen haben (z.B. weil Sie TortoiseSVN installiert haben, das einen Vergleichsprogramm-Viewer enthält), können Sie einfach die normale git diff Ausgabe in eine "temp"-Datei speichern und diese Datei dann direkt öffnen, ohne etwas über den Viewer wissen zu müssen:

git diff > "~/temp.diff" && start "~/temp.diff"

Noch besser funktioniert es, wenn Sie ihn als globalen Alias festlegen: git what

[alias]
    what = "!f() { git diff > "~/temp.diff" && start "~/temp.diff"; }; f"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X