You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用git log查看指定文件关联提交的全部受影响文件?

如何让git log <文件>显示提交涉及的所有文件的完整统计信息?

你遇到的问题是:当执行git log --stat=999,999 path/to/file时,Git只会展示该单个文件的diff统计,而如果提交中还修改了其他文件,这些文件不会被显示。要实现只要提交包含指定文件,就显示该提交所有被修改文件的完整stat,可以用以下两种方法:

一、直接使用组合命令

通过先筛选出所有修改过目标文件的提交哈希,再逐个查看这些提交的完整统计信息:

git log --format="%H" -- path/to/file | xargs git show --stat=999,999
  • git log --format="%H" -- path/to/file:输出所有修改过指定文件的提交哈希值(仅输出哈希,无其他冗余信息)
  • xargs git show --stat=999,999:将前面得到的哈希作为参数,传给git show,每个提交都会显示完整的文件变更统计(包括所有被修改的文件,不受路径过滤限制)

二、配置Git别名(更便捷)

如果需要频繁使用这个功能,可以在Git配置中添加别名,避免每次输入长命令:

  1. 打开你的全局Git配置文件(~/.gitconfig),或者仓库本地的.git/config
  2. 添加以下内容:
[alias]
log-fullstat = !f() { git log --format=\"%H\" -- \"$1\" | xargs git show --stat=999,999; }; f
  1. 保存后,就可以用简化命令调用:
git log-fullstat path/to/file

原理说明

当你给git log指定路径参数时,Git会对diff输出做路径过滤,只保留与该路径相关的变更信息,因此--stat也只会显示该文件的统计。而我们的方法是先获取所有涉及目标文件的提交,再单独查询每个提交的完整信息,绕开了路径过滤对stat输出的限制。

内容的提问来源于stack exchange,提问作者Shovas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 04:32:18