1. Git Filter-Repo:彻底掌控你的版本历史
作为开发者,我们都经历过这样的尴尬时刻:不小心把数据库密码提交到了GitHub,或者发现仓库里堆积了大量无意义的"fix typo"提交。传统的git filter-branch就像用手术刀做木工活——功能强大但笨重危险。而git-filter-repo则是专为现代Git工作流设计的精密工具。
我在管理一个包含5年提交历史的Elasticsearch插件项目时,首次接触到这个工具。当时需要清理数百MB的测试日志文件,filter-branch耗时45分钟还失败了,而filter-repo只用3分钟就完美解决。这个经历让我意识到,每个严肃的开发者都应该掌握这个利器。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础操作
2.1 跨平台安装指南
在Ubuntu/Debian上推荐通过apt安装依赖:
bash复制sudo apt-get update
sudo apt-get install -y python3-pip git
pip3 install --user git-filter-repo
Windows用户需要注意:
- 确保Git Bash已安装Python3
- 将
%USERPROFILE%\AppData\Roaming\Python\Python39\Scripts加入PATH - 可能需要额外安装Microsoft Visual C++ 14.0编译工具
验证安装:
bash复制git-filter-repo --version
# 应输出类似 git-filter-repo 2.38.0
2.2 仓库备份的三种策略
- 完整克隆备份(推荐):
bash复制git clone --mirror git@github.com:user/repo.git repo.backup
- 分支标记法:
bash复制git branch backup-master origin/master
git branch backup-develop origin/develop
- 打包备份:
bash复制git bundle create repo.bundle --all
重要
