如何查询修改了指定扩展名(如.YAML、.JSON)文件的所有Git提交记录?
Git查询修改指定扩展名文件提交的操作方法
基础查询操作
你可以直接使用git log的路径过滤功能实现需求,命令规则为在git log后添加-- 后缀匹配规则即可:
- 查询仅修改了YAML格式文件的提交:
git log -- '*.yaml' '*.yml'
单引号作用是避免Shell提前展开通配符,确保匹配到仓库所有层级目录下的对应后缀文件,如果你使用大小写不敏感的系统需要匹配.YAML这类大写后缀,可添加-i参数。
- 查询修改了YAML 或 JSON格式文件的提交(只要修改了其中一种后缀就命中):
git log -- '*.yaml' '*.yml' '*.json'
- 查询同时修改了YAML和JSON两种格式文件的提交(一次提交中两种后缀的文件都有修改才命中):
git log --all-match -- '*.yaml' '*.yml' '*.json'
常用进阶参数
你可以搭配以下参数满足不同查询需求:
- 查看每次提交的具体文件改动内容,添加
-p参数:git log -p -- '*.yaml' '*.json' - 仅展示提交哈希、提交信息和修改的文件名,添加
--name-only参数:git log --name-only -- '*.yaml' '*.json' - 限制查询时间范围,比如只查最近30天内的提交,添加
--since参数:git log --since="30 days ago" -- '*.yaml' '*.json'
注意事项
如果你在Windows的CMD或PowerShell环境中执行命令,单引号可能不生效,可以替换为双引号,或者直接去掉引号写通配符,示例:
git log -- *.yaml *.json
如果你仅需要匹配当前目录下的对应后缀文件,不需要递归匹配子目录,去掉通配符前的*即可,示例:git log -- *.yaml
内容的提问来源于stack exchange,提问作者Jimmy Zhao
相关产品推荐
相关产品推荐

