默认的git差异行为是依次打开每个差异文件(等待上一个文件关闭后再打开下一个文件)。
我正在寻找一种方法来打开所有的文件一次-在BeyondCompare例如,这将打开所有的文件在选项卡内同一BC窗口。
这将使审查一组复杂的变更更加容易;在差异文件之间来回切换,忽略不重要的文件。
默认的git差异行为是依次打开每个差异文件(等待上一个文件关闭后再打开下一个文件)。
我正在寻找一种方法来打开所有的文件一次-在BeyondCompare例如,这将打开所有的文件在选项卡内同一BC窗口。
这将使审查一组复杂的变更更加容易;在差异文件之间来回切换,忽略不重要的文件。
当前回答
如果你想要做的就是打开当前修改过的所有文件,试试下面的方法:
vi $(git status | sed -n '/.*modified: */s///p')
如果您正在提交“复杂的更改集”,您可能需要重新考虑您的工作流。git的一个非常好的特性是,它使开发人员可以轻松地将复杂的更改集简化为一系列简单的补丁。与其尝试编辑当前修改的所有文件,不如查看git add——patch,它将允许您有选择地分段块。
其他回答
写了一个小工具,打开所有文件作为标签页在vim。
https://github.com/balki/vimtabdiff
我确实找到了这个方法(GitDiff.bat和GitDiff.rb),它将文件复制到旧/新临时dirs,然后对它们进行文件夹比较。
但是我宁愿直接查看工作文件(从工作目录),因为BeyondCompare有一个方便的功能,可以在diff窗口内编辑文件,这对于快速清理非常好。
编辑:这里有一个类似的方法来回应我在git邮件列表上的问题。
Git meld => https://github.com/wmanley/git-meld是一个很棒的脚本,它将在一个窗口中打开所有文件的整齐差异。
注意这里Araxis Merge有一个'-nowait'命令选项:
-nowait防止compare等待比较被关闭
也许这会返回一个立即退出码,可以工作,有人经历过吗?找不到类似的BeyondCompare选项…
您可以使用gitk同时查看所有的差异