忽略 git diff 中的某些更改

jsh*_*arp 6 bash diff git command-line

是否可以从 git diff 或相关命令获取排除特定类别更改的报告?

我被要求审查一项更改,其中大量文件经历了相当于 s/2016/2017/g 的更改。(我们升级了第三方 jar,因此我们的许多导入现在引用了不同的包。)

是否有选项可以从命令行查看此差异,但抑制仅包含以下内容的所有更改,以便我可以专注于任何逻辑更改?

忽略:

-import com.example.2016_2.util.Utility
+import com.example.2017_2.util.Utility
Run Code Online (Sandbox Code Playgroud)

保持:

-Utility util = new Utility();
+Utility util = Utility.create();
Run Code Online (Sandbox Code Playgroud)

如果答案是编写我自己的脚本并通过git diff --porcelain或通过设置集成GIT_EXTERNAL_DIFF,我当然愿意;只是想知道是否

  1. 这是开箱即用的支持,不知何故我在手册页中错过了它;
  2. 我还可以使用其他 git diff* 命令来实现此目的;
  3. 如果已经存在合适的 diff 可执行文件,我可以通过GIT_EXTERNAL_DIFF

xen*_*oid 0

有很多方法可以比较文件,git diff这很好,但还有其他方法。面对同样的任务,我会:

  • 查看后面修改的代码
  • 将整个代码树复制到另一个目录中
  • 恢复该副本中的 2016/2017 更改
  • 在 git 树中,查看历史提交
  • 在两棵树之间进行递归比较(Windows 上的 BeyondCompare,kdiff3Linux 上)