如何用Git列出含特定文件变更的提交记录及变更文件?
列出特定文件变更的Git修订版本(含提交信息与变更文件)
不用自己写遍历脚本,Git本身就有现成的命令直接实现需求,用git log就能搞定,分几种场景:
单个指定文件(比如根目录的pom.xml)
直接运行以下命令:
git log --oneline --name-status -- pom.xml
--oneline:提交信息以简短单行展示(哈希前缀+提交标题)--name-status:显示每个提交里变更文件的状态(修改M、新增A、删除D等)和文件名- 末尾的
-- pom.xml:限定只追踪这个文件的变更历史
如果需要完整的提交详情(完整哈希、作者、提交日期),去掉--oneline即可:
git log --name-status -- pom.xml
匹配文件模式(比如所有子目录的pom.xml)
如果要追踪所有子目录里的pom.xml,用通配符匹配:
git log --oneline --name-status -- '**/pom.xml'
注意通配符要加单引号,防止被Shell提前解析成当前目录的文件。
额外实用技巧
如果想查看每个提交里该文件的具体变更内容,加上-p参数:
git log --oneline -p -- pom.xml
这样会在每个提交条目后附带该文件的diff对比内容。
内容的提问来源于stack exchange,提问作者carlspring
相关产品推荐
相关产品推荐

