如何使用首选的差异工具/查看器查看“ git diff”输出?


754

输入时git diff,我想使用我选择的可视化差异工具(在Windows上为SourceGear“ diffmerge”)查看输出。如何配置git来做到这一点?


108
您可以在所有较新版本的git中使用“ git difftool”代替“ git diff”。这将打开一个视觉差异程序。
PlagueHammer 2009年

:对于新的脚本difftool,我加入了以下的答案stackoverflow.com/questions/255202/...
VonC

2
gitx - gitx.frim.nl。纳夫说。
亚历克斯·格兰德


5
转到Git Bash中的存储库。输入git config diff.tool winmerge。输入验证它是否有效git difftool。摆脱键入的提示git config --global difftool.prompt false。我建议使用p4merge而不是winmerge。
Michael S.

Answers:


386

从Git1.6.3开始,您可以使用git difftool脚本:请参阅下面的答案


可能本文会为您提供帮助。这是最好的部分:

有两种不同的方法可以指定外部差异工具。

第一种是通过设置GIT_EXTERNAL_DIFF变量使用的方法。但是,该变量应指向可执行文件的完整路径。此外,将使用固定的7个参数集来调用GIT_EXTERNAL_DIFF指定的可执行文件:

path old-file old-hex old-mode new-file new-hex new-mode

由于大多数差异工具将需要不同顺序的参数(仅某些参数),因此您极有可能必须指定包装器脚本,从而调用真正的差异工具。

我更喜欢的第二种方法是通过“ git config”配置外部diff工具。这是我所做的:

1)创建一个包含以下内容的包装脚本“ git-diff-wrapper.sh”

-->8-(snip)--
#!/bin/sh

# diff is called by git with 7 parameters:
# path old-file old-hex old-mode new-file new-hex new-mode

"<path_to_diff_executable>" "$2" "$5" | cat
--8<-(snap)--

如您所见,只有第二个(“旧文件”)和第五个(“新文件”)参数将传递给diff工具。

2)类型

$ git config --global diff.external <path_to_wrapper_script>

在命令提示符处,替换为“ git-diff-wrapper.sh”的路径,因此您的〜/ .gitconfig包含

-->8-(snip)--
[diff]
    external = <path_to_wrapper_script>
--8<-(snap)--

确保使用正确的语法来指定包装脚本和diff工具的路径,即使用正斜杠代替反斜杠。就我而言

[diff]
    external = \"c:/Documents and Settings/sschuber/git-diff-wrapper.sh\"

在.gitconfig和

"d:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat

在包装脚本中。注意尾随的“猫”!

(我想| cat仅对于某些可能不会返回正确或一致的返回状态的程序才需要使用' '。如果您的diff工具具有显式的返回状态,则可能不尝试尾随cat就可以尝试)

Diomidis Spinellis 在评论中添加:

cat命令是必需的,因为diff(1)如果文件不同,默认情况下会以错误代码退出。
Git期望仅当发生实际错误(例如,内存不足)时,外部diff程序才会以错误代码退出。
通过管道git传输到cat非零错误代码的输出被屏蔽。
更有效地,该程序可以仅exit使用参数0来运行。)


那(上面引用的文章)是通过配置文件(而不是通过环境变量)定义的外部工具的理论。
在实践中(仍然用于外部工具的配置文件定义),您可以参考:


1
嗯,我会设置外部diff程序,但不了解这7个参数,谢谢。
user3891

4
荣誉...这非常方便。我使用“ opendiff”(在Mac OS X下启动了漂亮的XCode FileMerge实用程序)进行了设置。
Ryan Delucchi 09年

@Ryan:太好了:)您是否使用了此答案中详细介绍的“ diff.external”设置或下面我的第二个答案中的“ git difftool”?
VonC

太棒了!谢谢,尝试了DiffMerge和opendiff;两者都运作良好。
vfilby

2
那么git将7个参数发送到diff程序?我对Git的了解越多,我就觉得它是针对一个人制作的:原始程序员。这种dvc似乎更像是个闪亮的玩具,没有做太多的事情。
C Johnson

211

要完成我之前的“ diff.external”配置答案,请执行以下操作:

Jakub所述,Git1.6.3引入了git difftool,最初于2008年9月提出:

USAGE = '[--tool=tool] [--commit=ref] [--start=ref --end=ref] [--no-prompt] [file to merge]'
(请参阅--extcmd此答案的最后一部分)

$LOCAL包含起始修订版$REMOTE中文件的内容,并包含终止修订版中文件的内容。
$BASE包含该文件的内容

基本上git-mergetool已对其进行了修改,以在git索引/工作树上运行。

通常情况下,使用这个脚本是当你要么上演或不分级的变化,你想看到的并排侧差异观众变化(如xxdifftkdiff等)。

git difftool [<filename>*]

另一个用例是当您希望看到相同的信息但正在比较任意提交时(这是revarg解析可能更好的部分)

git difftool --start=HEAD^ --end=HEAD [-- <filename>*]

最后一个用例是您想将当前工作树与HEAD以外的其他内容(例如标签)进行比较

git difftool --commit=v1.0.0 [-- <filename>*]

注意:自Git 2.5起,git config diff.tool winmerge就足够了!
参见“ git mergetool winmerge

而且由于Git的1.7.11,你可以选择--dir-diff,为了产卵外部差异的工具,可以填充两个临时目录,而不是运行外部工具的实例,每一个文件对一次后的一段时间比较两个目录层次。


在Git 2.5之前:

difftool使用自定义差异工具进行配置的实际案例:

C:\myGitRepo>git config --global diff.tool winmerge
C:\myGitRepo>git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""
C:\myGitRepo>git config --global difftool.prompt false

将winmerge.sh存储在PATH的目录中:

#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"C:/Program Files/WinMerge/WinMergeU.exe" -u -e "$1" "$2" -dl "Local" -dr "Remote"

如果您有其他工具(kdiff3,P4Diff等),请创建另一个Shell脚本和相应的difftool.myDiffTool.cmdconfig指令。
然后,您可以使用diff.tool配置轻松切换工具。

您还拥有Dave的博客条目,以添加其他详细信息。
(或这个问题winmergeu选项)

此设置的有趣之处在于winmerge.sh脚本:您可以自定义它以考虑特殊情况。

例如,请参阅下面的示例中David Marble答案

  • 原始文件或目标文件中的文件
  • 删除了原始文件或目标文件

正如Kem Mason回答中提到的那样,您还可以通过使用以下--extcmd选项来避免使用任何包装

--extcmd=<command>

指定用于查看差异的自定义命令。git-difftool忽略配置的默认值,并$command $LOCAL $REMOTE在指定此选项时运行。

例如,这就是gitk能够运行/使用任何diff工具的方式


11
我不得不对$进行转义,以$ LOCAL和$ REMOTE阻止它们成为“”和“”。我会说git config --globla difftool.winmerge.cmd“ winmerge.sh \” \ $ LOCAL \“ \” \ $ REMOTE“”
卡洛斯·

此外,如何使-s选项(在一个winmerge窗口中打开多个diff)在此方案中起作用的想法?
卡洛斯·伦登

1
@Carlos:Frank(请参阅上面的评论)希望您查看stackoverflow.com/questions/1220309/…(用于在一个winmerge窗口中打开多个差异)
VonC 2010年

1
--start=--end=选项都没有v1.7.11认可
迈克尔

1
@SteveChambers是的,我在stackoverflow.com/a/10879804/6309中提到了它。我将编辑此答案。
VonC

110

本着回答与提出的问题有所不同的问题的精神。试试这个解决方案:

$ meld my_project_using_git

Meld了解git,并提供了有关最新更改的导航。


17
太好了,比键入而且必须按顺序查看更改的文件容易meld .得多git difftool。而且它更接近Mercurial的hg vdiff插件。
汤姆(Tom),2010年

6
此外,meld .万一有人好奇,也可以在Mercurial和Subversion项目上工作。
汤姆(Tom),2010年

嗯,当我这样做时,将显示已修改文件的列表。当我单击其中一个或执行“比较”时,它将在单独的选项卡中单独打开。我如何获得差异?
misiu_mp 2011年

@misiu_mp,我刚刚尝试过,在单击修改后的文件时,它显示了diff(旧文件以及修改后的文件)。
db42

此版本添加了什么版本?它似乎不适用于融合版本1.1.5
Mark Booth 2012年

41

使用新的git difftool,就像将它添加到.gitconfig文件中一样简单:

[diff]
    tool = any-name
[difftool "any-name"]
    cmd = "\"C:/path/to/my/ext/diff.exe\" \"$LOCAL\" \"$REMOTE\""

(可选)还添加:

[difftool]
    prompt = false

还要查看diffall,这是我编写的一个简单脚本,用于扩展烦人的(IMO)默认情况下以串行方式打开每个文件的diff行为。

Windows上的全局.gitconfig位于 %USERPROFILE%\.gitconfig


1
什么是$ local,什么是$ remote?
C Johnson

3
不需要包装脚本的方法+1
jhewlett

@CJohnson:分别是原始文件的路径和编辑后的文件的路径。
jhewlett

万一博客链接死了,这里是链接的SO答案:stackoverflow.com/a/1291578/321973
Tobias Kienzler 2014年

1
@CJohnson:$ LOCAL始终是最新的提交。但是$ REMOTE不一致。查看本地沙箱中的更改时,它是当前文件/已编辑文件,但是当比较历史提交时,它是提交。普通差异的IOW $ LOCAL =旧,$ REMOTE =新。对于历史记录,$ LOCAL =更新,$ REMOTE =旧。
Granger '18年

40

从git版本1.6.3 开始,您可以配置“ git difftool ”以使用自己喜欢的图形化diff工具。当前支持的开箱即用的是kdiff3,kompare,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,diffuseopendiff ; 如果您要使用的工具不在此列表中,则可以始终使用' difftool.<tool>.cmd'配置选项。

“ git difftool”接受与“ git diff”相同的选项。


1
还配置了Araxis Merge。araxis.com/merge/scm_integration.html
ΩmegaMan

8
用法示例:git difftool -t kdiff3 HEAD
emanaton 2011年

24

我对此有一个补充。我喜欢通过以下方式定期使用不支持作为默认工具(例如万花筒)之一的差异应用程序

git difftool -t

我还希望将默认值diff设置为常规命令行,因此设置GIT_EXTERNAL_DIFF变量不是一种选择。

您可以diff通过以下命令将任意应用程序一次性使用:

git difftool --extcmd=/usr/bin/ksdiff

它只是将2个文件传递给您指定的命令,因此您可能也不需要包装器。


1
好点:还没有人提到该--extcmd选项。+1。我已将其包含在我的答案中。
VonC'2

19

在VonC解决文件删除和添加问题的答案的基础上,使用以下命令和脚本:

> git config --global diff.tool winmerge
> git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\" \"$BASE\""
> git config --global difftool.prompt false

这与将其放入您的global相同.gitconfig

[diff]
    tool = winmerge
[difftool "winmerge"]
    cmd = winmerge.bat "$LOCAL" "$REMOTE" "$BASE"
[difftool]
    prompt = false

然后将以下内容winmerge.sh放在您的路径中:

#!/bin/sh
NULL="/dev/null"
if [ "$2" = "$NULL" ] ; then
    echo "removed: $3"
elif [ "$1" = "$NULL" ] ; then
    echo "added: $3"
else
    echo "changed: $3"
    "C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -ub -dl "Base" -dr "Mine" "$1" "$2"
fi

winmerge.sh脚本的出色补充。+1。我更新了我的答案以链接到您的答案
VonC

1
winmerge.bat在第二个片段中应该是winmerge.sh
BartoszKP 2014年

您可以为许多工具使用它吗?并通过文件扩展名关联它们?
yucer '17

12

Windows / msys git解决方案

阅读答案后,我发现了一种更简单的方法,该方法只涉及更改一个文件。

  1. 创建一个批处理文件以使用参数2和5来调用diff程序。该文件必须位于路径中的某个位置。(如果您不知道它在哪里,请将其放在c:\ windows中)。命名为“ gitdiff.bat”。我的是:

    @echo off
    REM This is gitdiff.bat
    "C:\Program Files\WinMerge\WinMergeU.exe" %2 %5
    
  2. 将环境变量设置为指向您的批处理文件。例如:GIT_EXTERNAL_DIFF=gitdiff.bat。或通过powershell键入git config --global diff.external gitdiff.bat

    重要的是不要使用引号或指定任何路径信息,否则它将不起作用。这就是为什么gitdiff.bat必须在您的路径中。

现在,当您键入“ git diff”时,它将调用您的外部差异查看器。


1
+1(如果可以的话,请+10。)这确实是最简单的解决方案。我花了好几个小时努力寻找可接受的答案,但最终放弃了(我的一些问题可能与通过PowerShell运行Git有关...)但是,我使用了git config --global diff.external winmerge.cmd,而不是设置GIT_EXTERNAL_DIFF环境变量,并且效果也很好。
Christoffer Lette 2012年

此解决方案有两个问题:1.不适用于新文件。WinMerge要求我输入第二个文件进行比较。2.用于比较下一个文件的窗口仅在关闭当前WinMerge窗口后打开,这是同时查看所有文件的简便方法。
耶稣H

9

如果通过cygwin执行此操作,则可能需要使用cygpath

$ git config difftool.bc3.cmd "git-diff-bcomp-wrapper.sh \$LOCAL \$REMOTE"
$ cat git-diff-bcomp-wrapper.sh
#!/bin/sh
"c:/Program Files (x86)/Beyond Compare 3/BComp.exe" `cygpath -w $1` `cygpath -w $2`

出于某种原因,使用“ bc3”不再对我有用,但是如果我使用“ beyond”,则可以。
idbrii 2012年

9

查看其他外部差异工具后,我发现diffIntelliJ IDEA(和Android Studio)中的视图对我来说是最好的。

第1步-设置IntelliJ IDEA以从命令行运行

如果你想使用的IntelliJ IDEA作为比较工具,你应该先设置的IntelliJ IDEA从下面的说明在命令行中运行

在macOS或UNIX上:

  1. 确保IntelliJ IDEA正在运行。
  2. 在主菜单上,选择Tools | Create Command-line Launcher。将打开“创建启动器脚本”对话框,其中包含启动器脚本的建议路径和名称。您可以接受默认值,也可以指定自己的路径。记下它,以后再用。在IntelliJ IDEA之外,将路径和启动脚本的名称添加到您的路径中。

在Windows上:

  1. 在路径系统环境变量中指定IntelliJ IDEA可执行文件的位置。在这种情况下,您将能够从任何目录调用IntelliJ IDEA可执行文件和其他IntelliJ IDEA命令。

第2步-配置git以使用IntelliJ IDEA作为difftool

按照此博客文章中的说明进行操作:

重击

export INTELLIJ_HOME /Applications/IntelliJ\ IDEA\ CE.app/Contents/MacOS
PATH=$IDEA_HOME $PATH

set INTELLIJ_HOME /Applications/IntelliJ\ IDEA\ CE.app/Contents/MacOS
set PATH $INTELLIJ_HOME $PATH

现在将以下内容添加到您的git配置中:

[merge]
   tool = intellij
[mergetool "intellij"]
   cmd = idea merge $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") $(cd $(dirname "$BASE") && pwd)/$(basename "$BASE") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")
   trustExitCode = true
[diff]
   tool = intellij
[difftool "intellij"]
   cmd = idea diff $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE")

您可以使用git difftoolgit difftool HEAD~1


8

这在Windows 7上对我有效。不需要中介sh脚本

.gitconfig的内容:

    [diff]
      tool = kdiff3

    [difftool]
       prompt = false

    [difftool "kdiff3"]
      path = C:/Program Files (x86)/KDiff3/kdiff3.exe
      cmd = "$LOCAL" "$REMOTE"

您还将kdiff3定义为您的mergetool吗?介意分享gitconfig的那一部分吗?
blong 2012年

2
谢谢。这对我来说不是很有效,但是当我删除path并更改cmd"\"C:/Program Files (x86)/KDiff3/kdiff3.exe\" \"$LOCAL\" \"$REMOTE\""
Steve Chambers

7

上述重要答案的简短摘要:

git difftool --tool-help
git config --global diff.tool <chosen tool>
git config --global --add difftool.prompt false

然后通过键入(也可以指定文件名)来使用它:

git difftool

6

介绍

作为参考,我想对VonC的答案进行一些介绍。请记住,我正在使用具有修改过的PATH的MSys版本的Git(当前为1.6.0.2),并从Powershell(或cmd.exe)而不是Bash Shell运行Git本身。

我引入了一个新命令gitdiff。运行此命令可临时重定向git diff以使用您选择的可视化diff程序(与VonC的永久固定解决方案相对)。这使我既具有默认的Git diff功能(git diff),又具有视觉差异功能(gitdiff)。这两个命令使用相同的参数,因此例如可以直观地比较您可以键入的特定文件中的更改

gitdiff path/file.txt

设定

请注意,$GitInstall它用作Git安装目录的占位符。

  1. 创建一个新文件, $GitInstall\cmd\gitdiff.cmd

    @echo off
    setlocal
    for /F "delims=" %%I in ("%~dp0..") do @set path=%%~fI\bin;%%~fI\mingw\bin;%PATH%
    if "%HOME%"=="" @set HOME=%USERPROFILE%
    set GIT_EXTERNAL_DIFF=git-diff-visual.cmd
    set GIT_PAGER=cat
    git diff %*
    endlocal
    
  2. 创建一个新文件$GitInstall\bin\git-diff-visual.cmd(用[visual_diff_exe]您选择的diff程序的完整路径替换占位符)

    @echo off
    rem diff is called by git with 7 parameters:
    rem path old-file old-hex old-mode new-file new-hex new-mode
    echo Diffing "%5"
    "[visual_diff_exe]" "%2" "%5"
    exit 0
    
  3. 现在完成了。gitdiff现在,从Git存储库中运行应该为每个已更改的文件调用可视化diff程序。


6

这是一个适用于Windows的批处理文件-假设DiffMerge安装在默认位置,可以处理x64,可以根据需要处理反斜杠替换,并且可以自行安装。应该很容易用您喜欢的diff程序替换DiffMerge。

安装:

gitvdiff --install 

gitvdiff.bat:

@echo off

REM ---- Install? ----
REM To install, run gitvdiff --install

if %1==--install goto install



REM ---- Find DiffMerge ----

if DEFINED ProgramFiles^(x86^) (
    Set DIFF="%ProgramFiles(x86)%\SourceGear\DiffMerge\DiffMerge.exe"
) else (
    Set DIFF="%ProgramFiles%\SourceGear\DiffMerge\DiffMerge.exe"
)



REM ---- Switch forward slashes to back slashes ----

set oldW=%2
set oldW=%oldW:/=\%
set newW=%5
set newW=%newW:/=\%


REM ---- Launch DiffMerge ----

%DIFF% /title1="Old Version" %oldW% /title2="New Version" %newW%

goto :EOF



REM ---- Install ----
:install
set selfL=%~dpnx0
set selfL=%selfL:\=/%
@echo on
git config --global diff.external %selfL%
@echo off


:EOF

很棒的脚本,它免除了我查看DiffMerge命令的麻烦。您可能想要修改安装行以使用引号-我的机器上遇到了麻烦:“%1” ==“-install”。
马里奥(Mario)2010年

6

如果您使用的是Mac,并且装有XCode,则说明已安装FileMerge。终端命令是opendiff,因此您可以执行git difftool -t opendiff


2
使用-y选项可以避免令人讨厌的提示。不幸的是,git将等到FileMerge退出后才提供下一个更改的文件。使用-d选项一次性进行目录比较。
miner49r 2013年

选项-t似乎需要完整的路径。也许使用git difftool --extcmd = opendiff更好。
yucer '17

6

安装融合

 # apt-get install meld

然后选择它作为difftool

 $ git config --global diff.tool meld

如果您要在控制台上运行它,请输入:

 $ git difftool

如果要使用图形模式,请输入:

 $ git mergetool

输出将是:

 'git mergetool' will now attempt to use one of the following tools:
 meld opendiff kdiff3 tkdiff xxdiff tortoisemerge gvimdiff diffuse
 diffmerge ecmerge p4merge araxis bc3 codecompare emerge vimdiff
 Merging:
 www/css/style.css
 www/js/controllers.js

 Normal merge conflict for 'www/css/style.css':
   {local}: modified file
   {remote}: modified file
 Hit return to start merge resolution tool (meld):

因此,只需按Enter键即可使用meld(默认),这将打开图形模式,进行魔术保存,然后按一下可解决合并问题。就这样


5

对于如何在1.6.3之前的git版本上配置diff工具的Linux版本(向git添加了1.6.3的difftool),是一个非常简洁的教程,

简单来说:

步骤1:将其添加到您的.gitconfig

[diff]
  external = git_diff_wrapper
[pager]
  diff =

第2步:创建一个名为git_diff_wrapper的文件,并将其放在$ PATH中

#!/bin/sh

vimdiff "$2" "$5"

4

在Mac OS X上,

git difftool -t diffuse 

在git文件夹中为我完成了工作。要安装扩散板,可以使用端口-

sudo port install diffuse

3

您可以使用git difftool

例如,如果你已经合并,您可以编辑的支数masterdevel通过:

git config --global diff.external meld
git difftool master..devel

3

可以从此处的其他答案中收集以下内容,但是对我来说,这很困难(信息太多),因此,这是tkdiff的“仅输入内容”答案:

git difftool --tool=tkdiff <path to the file to be diffed>

您可以将您喜欢的差异工具的可执行文件名称替换为tkdiff。只要(例如tkdiff)(或您喜欢的差异工具)在PATH中,它将被启动。


这是最简单,最快的方法。
Zameer Fouzan

2

我在这里尝试了花哨的东西(与tkdiff一起使用),对我没有任何帮助。因此,我编写了以下脚本tkgitdiff。它做了我需要做的事。

$ 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

1

我在ubuntu上使用kompare:

sudo apt-get install kompare

比较两个分支:

git difftool -t kompare <my_branch> master

1

我已经使用~/.gitconfig了很长时间了:

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

git-meld

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

但是现在我厌倦了总是在图形化环境中使用Meld,并且在这种设置下调用普通的diff并不是一件容易的事,所以我切换到了:

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

使用此设置,可以完成以下工作:

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

而且我仍然可以保持好老头git diff


0

如果您碰巧已经有一个与文件类型关联的差异工具(例如,因为您安装了差异查看器随附的TortoiseSVN),则可以将常规git diff输出通过管道传递到“临时”文件,然后直接打开该文件而无需知道关于查看器的任何内容:

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

将其设置为全局别名效果更好: git what

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

0

如果您不是命令行用户,那么如果您安装了tortoise git,则可以右键单击一个文件以获取带有“稍后分发”选项的tortoisegit子菜单。

在第一个文件上选择此选项后,可以右键单击第二个文件,转到tortoisegit子菜单,然后选择“ Diff with == yourfilehere ==“,这将为结果提供tortoisegitmerge gui。


0

您可能想尝试xd http://github.com/jiqingtang/xd,它是GIT / SVN diff的GUI包装。它本身不是差异工具。你跑xd,当你想运行git diff或者svn diff,它会告诉你一个预览窗口的文件列表,你可以启动任何差异的工具,你喜欢,包括tkdiff,xxdiff,gvimdiff,emacs的(ediff),XEmacs的(ediff),MELD,扩散,kompare和kdiff3。您也可以运行任何自定义工具。

不幸的是,该工具不支持Windows。

披露:我是这个工具的作者。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.