默认的git差异行为是依次打开每个差异文件(等待上一个文件关闭后再打开下一个文件)。
我正在寻找一种方法来打开所有的文件一次-在BeyondCompare例如,这将打开所有的文件在选项卡内同一BC窗口。
这将使审查一组复杂的变更更加容易;在差异文件之间来回切换,忽略不重要的文件。
默认的git差异行为是依次打开每个差异文件(等待上一个文件关闭后再打开下一个文件)。
我正在寻找一种方法来打开所有的文件一次-在BeyondCompare例如,这将打开所有的文件在选项卡内同一BC窗口。
这将使审查一组复杂的变更更加容易;在差异文件之间来回切换,忽略不重要的文件。
当前回答
您可以使用gitk同时查看所有的差异
其他回答
我确实找到了这个方法(GitDiff.bat和GitDiff.rb),它将文件复制到旧/新临时dirs,然后对它们进行文件夹比较。
但是我宁愿直接查看工作文件(从工作目录),因为BeyondCompare有一个方便的功能,可以在diff窗口内编辑文件,这对于快速清理非常好。
编辑:这里有一个类似的方法来回应我在git邮件列表上的问题。
注意这里Araxis Merge有一个'-nowait'命令选项:
-nowait防止compare等待比较被关闭
也许这会返回一个立即退出码,可以工作,有人经历过吗?找不到类似的BeyondCompare选项…
下面使用meld和kdiff3
git difftool --dir-diff origin/branch1..origin/branch2
在您可以轻松浏览的窗口中打开所有文件。 可以在原点/分支名称的地方使用变更集吗
例如:git difftool——dir-diff origin/master..24604fb72f7e16ed44115fbd88b447779cc74bb1
这是我决定的……
复制以下代码到一个名为git-diffall的文件(没有扩展名):
#!/bin/sh
git diff --name-only "$@" | while read filename; do
git difftool "$@" --no-prompt "$filename" &
done
将文件放在git安装目录的cmd文件夹中(例如C:\Program Files (x86)\Git\ cmd)
然后使用like you would git diff:
git diffall
git diffall HEAD
git diffall --cached
git diffall rev1..rev2
etc...
注意:它的关键是&参数,它告诉外部diff命令在后台任务中运行,以便立即处理文件。在BeyondCompare的情况下,这将打开一个屏幕,每个文件都在自己的选项卡中。
对于那些有兴趣在Mac OS X和Araxis上使用git-diffall的人,我在github上分叉了git-diffall项目,并添加了一个包装Araxis合并命令的AppleScript。注意:这是Mac OS X的Araxis Merge附带的araxisgitdiff文件的一个稍微修改的克隆。
https://github.com/sorens/git-diffall