首页/开发/Git 与协作速查/从历史中删除文件或目录
进阶与大仓实践69 条

从历史中删除文件或目录

用 --path 指定目标并用 --invert-paths 反选即可删除该路径的全部历史;误提交的大文件、构建产物、内部资料都可通过此方式清理。

Git 与协作速查开发更新于 2026-10-12
删除文件git filter-repo --path secret.txt --invert-paths
删除目录git filter-repo --path build/ --invert-paths
多路径可写多条 --path,均按反选处理

常用示例

常用示例
git filter-repo --path build/ --path dist/ --invert-paths
git log --oneline -- build/ | head
git count-objects -vH
删除历史文件后旧哈希在外部仍可能被引用;涉及敏感信息时还需轮换相关凭证。

易错点

  • 只删最新提交里的文件用 git rm 即可,动历史是重手段,先确认目标提交范围
  • 清理后未同步远端与协作者会出现「删除后又合并回来」的循环

数据来源与参考

  • git-filter-repo 官方文档(--path/--invert-paths)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌