默认的git差异行为是依次打开每个差异文件(等待上一个文件关闭后再打开下一个文件)。
我正在寻找一种方法来打开所有的文件一次-在BeyondCompare例如,这将打开所有的文件在选项卡内同一BC窗口。
这将使审查一组复杂的变更更加容易;在差异文件之间来回切换,忽略不重要的文件。
默认的git差异行为是依次打开每个差异文件(等待上一个文件关闭后再打开下一个文件)。
我正在寻找一种方法来打开所有的文件一次-在BeyondCompare例如,这将打开所有的文件在选项卡内同一BC窗口。
这将使审查一组复杂的变更更加容易;在差异文件之间来回切换,忽略不重要的文件。
当前回答
meld有一个很好的特性,如果你在源代码控制下给它一个目录(Git、Mercurial、Subversion、Bazaar等),它会自动列出所有更改过的文件,你可以双击查看各个不同的文件。
在我看来,打字融合要容易得多。让它找出VCS,而不是配置VCS来启动meld。另外,无论你的项目使用什么VCS,你都可以使用相同的命令,如果你经常在它们之间切换,这是很棒的。
唯一的缺点是,meld扫描更改比从git/hg/svn传递更改要慢,尽管它是否慢到足以成为一个问题,这将取决于您如何使用它。
其他回答
Diffuse也有VCS集成。它与大量其他VCS进行互操作,包括SVN、Mercurial、Bazaar……对于Git来说,如果部分更改(但不是全部更改)是阶段性的,它甚至会显示三个窗格。在冲突的情况下,甚至会有四个窗格。
使用
diffuse -m
在Git工作副本中。
要我说,这是十年来我见过的最好的视觉差异。(我也试过融合。)
我写了一个powershell脚本,将复制两个工作树,并与DiffMerge进行比较。所以你可以这样做:
GitNdiff master~3 .
例如,比较三个签入前的主分支与当前工作树。
它又新又亮,可能满是虫子。一个缺点是,工作树中尚未添加的文件将被复制到两个工作树中。它也可能很慢。
http://github.com/fschwiet/GitNdiff
注意这里Araxis Merge有一个'-nowait'命令选项:
-nowait防止compare等待比较被关闭
也许这会返回一个立即退出码,可以工作,有人经历过吗?找不到类似的BeyondCompare选项…
下面使用meld和kdiff3
git difftool --dir-diff origin/branch1..origin/branch2
在您可以轻松浏览的窗口中打开所有文件。 可以在原点/分支名称的地方使用变更集吗
例如:git difftool——dir-diff origin/master..24604fb72f7e16ed44115fbd88b447779cc74bb1
meld有一个很好的特性,如果你在源代码控制下给它一个目录(Git、Mercurial、Subversion、Bazaar等),它会自动列出所有更改过的文件,你可以双击查看各个不同的文件。
在我看来,打字融合要容易得多。让它找出VCS,而不是配置VCS来启动meld。另外,无论你的项目使用什么VCS,你都可以使用相同的命令,如果你经常在它们之间切换,这是很棒的。
唯一的缺点是,meld扫描更改比从git/hg/svn传递更改要慢,尽管它是否慢到足以成为一个问题,这将取决于您如何使用它。