默认的git差异行为是依次打开每个差异文件(等待上一个文件关闭后再打开下一个文件)。

我正在寻找一种方法来打开所有的文件一次-在BeyondCompare例如,这将打开所有的文件在选项卡内同一BC窗口。

这将使审查一组复杂的变更更加容易;在差异文件之间来回切换,忽略不重要的文件。


当前回答

meld有一个很好的特性,如果你在源代码控制下给它一个目录(Git、Mercurial、Subversion、Bazaar等),它会自动列出所有更改过的文件,你可以双击查看各个不同的文件。

在我看来,打字融合要容易得多。让它找出VCS,而不是配置VCS来启动meld。另外,无论你的项目使用什么VCS,你都可以使用相同的命令,如果你经常在它们之间切换,这是很棒的。

唯一的缺点是,meld扫描更改比从git/hg/svn传递更改要慢,尽管它是否慢到足以成为一个问题,这将取决于您如何使用它。

其他回答

我确实找到了这个方法(GitDiff.bat和GitDiff.rb),它将文件复制到旧/新临时dirs,然后对它们进行文件夹比较。

但是我宁愿直接查看工作文件(从工作目录),因为BeyondCompare有一个方便的功能,可以在diff窗口内编辑文件,这对于快速清理非常好。

编辑:这里有一个类似的方法来回应我在git邮件列表上的问题。

注意这里Araxis Merge有一个'-nowait'命令选项:

-nowait防止compare等待比较被关闭

也许这会返回一个立即退出码,可以工作,有人经历过吗?找不到类似的BeyondCompare选项…

Git meld => https://github.com/wmanley/git-meld是一个很棒的脚本,它将在一个窗口中打开所有文件的整齐差异。

写了一个小工具,打开所有文件作为标签页在vim。

https://github.com/balki/vimtabdiff

meld有一个很好的特性,如果你在源代码控制下给它一个目录(Git、Mercurial、Subversion、Bazaar等),它会自动列出所有更改过的文件,你可以双击查看各个不同的文件。

在我看来,打字融合要容易得多。让它找出VCS,而不是配置VCS来启动meld。另外,无论你的项目使用什么VCS,你都可以使用相同的命令,如果你经常在它们之间切换,这是很棒的。

唯一的缺点是,meld扫描更改比从git/hg/svn传递更改要慢,尽管它是否慢到足以成为一个问题,这将取决于您如何使用它。