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

如何列出Git仓库中所有存在任意文件删除操作的提交记录

如何列出Git仓库中所有删除过任意文件的提交记录

针对开源前全链路敏感信息排查的场景,可通过Git内置的日志筛选能力直接定位所有存在文件删除行为的提交、以及全量曾被跟踪后被删除的文件,具体操作如下:

列出所有含文件删除行为的提交

执行以下命令,会按提交时间从新到旧输出所有存在文件删除操作的提交,同时展示每个提交中被删除的具体文件路径:

git log --diff-filter=D --summary

核心参数说明:

  • --diff-filter=D:仅筛选差异类型为「删除(Delete)」的提交,自动跳过仅包含新增、修改、重命名行为的提交
  • --summary:在提交信息后附加文件操作概要,明确列出每个提交删除的文件路径

如果只需要精简的提交列表(仅展示短提交哈希+提交说明),可使用简化命令:

git log --diff-filter=D --oneline

如果不希望将文件重命名操作误识别为「删除旧文件+新增新文件」,可添加--no-renames参数过滤重命名场景,仅统计真正被移除的文件:

git log --diff-filter=D --no-renames --summary

导出全量历史被删除的跟踪文件清单

如果需要获取所有曾经被Git跟踪、后续被删除的文件去重列表用于批量核查,执行以下命令即可:

git log --diff-filter=D --pretty=format: --name-only | sort -u > deleted_files_list.txt

核心参数说明:

  • --pretty=format::关闭提交元信息输出,仅保留文件路径内容
  • --name-only:仅输出改动涉及的文件名,不展示具体diff内容
  • sort -u:对输出的文件路径去重排序,避免同一文件因多次删改重复出现
  • > deleted_files_list.txt:将结果导出到当前目录下的文本文件,不需要导出可删除该段

核查删除提交的具体内容

拿到目标提交的哈希值后,执行以下命令即可查看该次提交的完整改动,包括被删除文件的全部内容,方便核查是否存在敏感信息:

git show <替换为实际的提交哈希>

如果仅需要查看该次提交中被删除文件的内容,不需要展示提交说明和其他类型的改动,可添加筛选参数:

git show <替换为实际的提交哈希> --diff-filter=D

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:36:18