删除 Git 历史提交记录中的大文件

git filter-branch 命令的作用是重写Git仓库历史记录,这里具体用于彻底删除大文件。该命令参数解析:

bash 复制代码
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch multimodal-transport-system/data/road.geojson" --prune-empty --tag-name-filter cat -- --all

作用说明:

  1. --index-filter 会在每个历史提交中执行 git rm --cached 操作,从Git索引中永久删除:
    • multimodal-transport-system/data/road.geojson 指定要删除的路径
    • --ignore-unmatch 允许文件不存在时跳过报错
  2. --prune-empty 会自动删除因删除文件而产生的空提交
  3. --tag-name-filter cat 会保留并重写所有标签(tag)
  4. --all 表示对所有分支进行操作

最终效果:该文件会从所有分支的历史提交记录中被清除(包括已推送的远程记录),但本地工作目录中的实际文件不受影响。执行后需要使用 git push --force 强制覆盖远程仓库历史。

注意:这会改变项目历史哈希值,执行前请确保已备份仓库,且提前通知所有协作者需要重新克隆仓库。

相关推荐
console.log('npc')3 小时前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
重生之我来学Python11 小时前
Git-SVN 混合开发,从入门到精通!
开发语言·git·svn·github
笨笨饿13 小时前
#137_死机恢复现场_Armino平台AP系统swd调试
git·python·stm32·单片机·嵌入式硬件·物联网·vim
King of fraud14 小时前
Git 入门:从零开始的版本控制之旅
git
AI大模型-小华14 小时前
Codex CLI第一次怎么用?从安装到读取本地项目完整教程
git·node.js·ai编程·开发工具·代码分析·codex·codex cli
2401_8616786214 小时前
Git 在 Windows 使用
windows·git·elasticsearch
青禾83718 小时前
Git 与 SVN 完全指南:从集中式到分布式的版本控制
分布式·git·svn
2301_8009549918 小时前
Git 版本控制核心概念详解:从集中式到分布式
分布式·git
Draw Stars1 天前
Git BASH安装教程
开发语言·git·bash
Akiyama_Mio-Kon1 天前
2026 最新:Dify 本地 Docker 部署完整教程(Windows + Git Bash)
windows·git·docker