忽略 git diff 中的某些更改

忽略 git diff 中的某些更改

是否可以从 git diff 或相关命令中获取排除某一类更改的报告?

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

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

忽略:

-import com.example.2016_2.util.Utility
+import com.example.2017_2.util.Utility

保持:

-Utility util = new Utility();
+Utility util = Utility.create();

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

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

答案1

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

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

相关内容