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?
Antworten
Zu viele Anzeigen?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
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
.
Yo uso Kompare auf Ubuntu:
sudo apt-get install kompare
Zwei Zweige zu vergleichen:
git difftool -t kompare <my_branch> master
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.
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"
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.
1 Stimmen
Eine kurze Anleitung finden Sie hier: nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
0 Stimmen
git difftool -tool=opendiff
einfach ersetzenopendiff
mit was auch immer.6 Stimmen
Rufen Sie Ihr Repository in Git Bash auf. Geben Sie ein.
git config diff.tool winmerge
. Überprüfen Sie, ob es funktioniert, indem Sie Folgendes eingebengit difftool
. Beseitigen Sie die Eingabeaufforderung, indem Siegit config --global difftool.prompt false
. Ich empfehle p4merge anstelle von winmerge.0 Stimmen
(1.) zur Auflistung der unterstützten externen Diff-Tools tun
git difftool --tool-help
(2.) mit einem speziellen Diff-Tool zu öffnen wievimdiff
einfach tungit difftool --tool=vimdiff
. Dies ist eine Zusammenfassung von die Lösung, geschrieben von @JakubNarebski