Git Filter Repo

Git 高级

Amanda Crawford-Adamo

Software and Data Engineer

什么是 git filter-repo?

Git Filter-Repo 命令

git filter-repo

一种快速、安全改写 Git 历史的工具。

  • 重命名文件或目录
  • 同时作用于所有分支

用途

  1. 移除敏感数据(如密码、token)
  2. 清理不必要的文件
  3. 重构仓库结构
  4. 减小仓库体积
Git 高级

Filter-Repo 流程

  1. 用 pip 安装 git filter-repo

    pip install git-filter-repo
    
  2. 从所有提交中移除 secrets.txt

    git filter-repo --path secrets.txt --invert-paths
    

相关过滤器

--path:指定要操作的路径

--invert-paths:对除 --path 指定外的所有路径操作

Git 高级

Filter-Repo 结果

输出

  Parsed 150 commits
  New history written in 0.10 seconds; now repacking/cleaning...
  Repacking your repo and cleaning out old unneeded objects

关键影响

  • 所有分支与提交均已更新
  • 所有提交哈希已改变
  • 之后需要强制推送
  • 团队成员需重新克隆仓库
Git 高级

何时使用 filter-repo

适用场景

  • 移除敏感数据(如密码)
  • 清理臃肿的仓库
  • 在所有提交中重命名或重组文件

提示

  • 使用 filter-repo 前务必备份仓库
  • 推送改写历史前与协作者沟通
Git 高级

让我们来练习!

Git 高级

Preparing Video For Download...