Git 清理仓库文件历史

阅读量:

[!info] 2023-05-12 清理方案,由于 Git 的更新,清理方式变更过几次,日后仍存在变更的可能。

通过使用 git-filter-repo 模块来检查和删除仓库中历史提交的文件。

简单的安装及使用方式 是下载 git-filter-repo 文件,并通过命令

python3 git-filter-repo --analyze

执行文件对仓库进行分析,分析后可以通过命令

head .git/filter-repo/analysis/path-all-sizes.txt

查看仓库中的大文件。根据分析结果选择想要删除的文件执行命令

python3 ~/git-filter-repo --path-glob 'folder_path/file_want_to_delete' --invert-paths --force

其中文件名的部分可使用通配符批量删除文件。

若该仓库中的大文件曾经推送至远程仓库过,则需要通过 git push --force 来修改远程仓库的历史,需要注意文件曾经所在的分支,需要强制推送至对应的分支上。

参考资料

  1. https://web.archive.org/web/20190207210108/http://stevelorek.com/how-to-shrink-a-git-repository.html
  2. https://stackoverflow.com/a/2116892

反向链接

到头儿啦~

局部关系图