简介
git filter-repo 是一个快速而灵活的工具,用于修改 Git 仓库的历史记录。
它可以用于许多任务,例如:
- 重写提交历史记录
- 清理旧的大型文件
- 将仓库拆分成几个小仓库
- 将多个仓库合并成一个
- 移除密码和其他敏感数据
Git-Filter-Repo的一些特性是:
- 处理速度快
- 灵活,可配置性高
- 保留提交的作者和时间戳信息
- 可以对文件进行重命名和重构
- 可以对提交信息进行修改和删除
- 可以对提交信息进行搜索和替换
- 可以使用Python脚本进行自定义修改
安装
MacOS 使用 homebrew 包管理工具进行安装,命令如下,其他方式参考官方文档
1 | brew install git-filter-repo |
使用示例
移除文件
假设我们有一个包含敏感文件的 Git 仓库,需要将这些文件从提交记录中移除。
1 | git filter-repo --path sensitive.txt --invert-paths |
这个命令会将所有包含 sensitive.txt 文件的提交从历史记录中移除。