清理 git 仓库
发现 git 仓库的存储空间有问题,原来是一不小心提交了二进制文件。作为强迫症患者学习了一下如何给仓库瘦身。
清理前 repository 为 93.1 MiB | 清理后 repository 为 1.6 MiB |
---|
0x01 备份
重写存储库历史记录是一种破坏性操作。首先需要备份仓库,在 Settings > General > Advanced > Export project 导出项目。
0x02 清理
重新克隆
1 | git clone --bare --mirror /path/to/project.bundle |
使用 git filter-repo 查看那些文件需要被删除
1 | git filter-repo --analyze |
使用下面命令清理需要删除的文件,详见 git filter-repo documentation
1 | git filter-repo --invert-paths --path path1 --path path2 ... |
强制更新
1 | git push origin --force 'refs/heads/*' |
更新 gitlab 的 commit-map:
在 Settings > Repository 中 上传 filter-repo/commit-map
0x03 LFS
将特定文件添加到 git LFS 中,执行
1 | git lfs migrate import --everything --include="*.bin" |
强制更新
1 | git push --force |