有没有办法限制git diff更改的文件?
我想看看两个提交之间的差异,但排除一个或另一个中不存在的路径(添加/删除).以下Perl单线程说明了我想要的大部分内容:
git diff master.. | perl -lnwe 'print unless /^(new|deleted) file/../^diff/ and not /^diff/'
Run Code Online (Sandbox Code Playgroud)
但是这会diff --git a/path b/path为新文件或删除的文件留下线条.另外,如果我不需要解析它会更好(如果任何hunk包含匹配/ ^ diff /的任何内容,也会失败).
我尝试的另一种选择是:
git diff --name-status (args) | perl -lnwe 'print if s/^M\s+//' | xargs git diff (args) --
Run Code Online (Sandbox Code Playgroud)
它的输出更好,但仍然感觉很乱.