有没有办法将 git diff
限制为已更改的文件?
我希望看到两次提交之间的区别,但是要排除这两次提交中不存在的路径(添加/删除)。下面的 Perl 一行程序说明了我想要的大部分内容:
git diff master.. | perl -lnwe 'print unless /^(new|deleted) file/../^diff/ and not /^diff/'
但是对于新建或删除的文件,留下了 diff --git a/path b/path
行。另外,如果我不需要解析(例如,如果任何 hunk 包含任何匹配/^ diff/的内容,也会失败) ,那么它会更好。
我试过的另一个选择是:
git diff --name-status (args) | perl -lnwe 'print if s/^M\s+//' | xargs git diff (args) --
它的输出更好,但仍然感觉骇客。