如何在Git中查看自指定日期以来仓库新增的所有文件?
查询Git仓库指定时间后新增文件的操作方法
直接用Git原生命令就能拿到准确的新增文件列表,不需要额外安装工具,完全可以满足修改Makefile时核对新增源码文件的需求。
基础查询命令
执行以下命令即可输出指定日期之后,仓库内所有新增的文件路径:
git log --since="YYYY-MM-DD" --diff-filter=A --name-only --pretty=format: | sort -u
参数说明:
--since="YYYY-MM-DD":替换为你需要的起始日期即可,支持标准日期格式(比如2024-01-15),也支持相对时间写法(比如"3 months ago"、"last monday")--diff-filter=A:仅筛选提交记录中状态为「新增(Added)」的文件,自动过滤被修改、删除、重命名的文件--name-only:仅输出变动的文件路径,不展示提交哈希、提交说明、作者等冗余信息--pretty=format::清空Git log默认输出的提交元信息,避免非文件路径的内容混进结果sort -u:对输出的文件列表去重、按字典序排序,避免同一个文件被多次提交时重复出现在结果里
常用场景变体
- 只查询指定目录下的新增文件,比如仅排查src源码目录:
git log --since="2024-01-01" --diff-filter=A --name-only --pretty=format: -- src/ | sort -u
- 查询指定分支的新增文件,比如查dev分支的记录:
git log dev --since="2024-01-01" --diff-filter=A --name-only --pretty=format: | sort -u
- 不按日期、按版本节点查询,比如查v2.0标签发布之后到当前版本的新增文件:
git log v2.0..HEAD --diff-filter=A --name-only --pretty=format: | sort -u
- 把结果直接导出到文本文件,方便逐行对照修改Makefile:
git log --since="2024-03-01" --diff-filter=A --name-only --pretty=format: | sort -u > new_file_list.txt
注意:如果仓库有子模块,需要查询子模块内的新增文件时,进入对应子模块目录执行上述命令即可。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

