git仓库文件太大
git 仓库删除历史大文件
git 项目添加.gitignore 文件很重要
在 git 中增加了一个很大的文件,而且被保存在历史提交记录中,每次拉取代码都很大,速度很慢。而且用删除 提交历史记录的方式不是很实际。
以下分几个步骤介绍如何减小.git 文件夹
以worklog-realtime工程为例:
- 显示 3 个最大的文件 id 列表
git rev-list --all | xargs -L1 git ls-tree -r --long | sort -uk3 | sort -rnk4 | head -3
100644 blob b3c134b79695d76e25088428158c6b9144fc9dda 154790547 target/worklog-1.0-SNAPSHOT-jar-with-dependencies.jar
100644 blob fec5a75f4093a9d936697a3bbec077d862fe4673 1784190 doc/work_log_realtime_spec.xlsx
100644 blob 5b472a60c2b9c0063d8930a9bc68cb32dd9aeabf 1742210 doc/work_log_realtime_spec.xlsx
- 很明显
target/worklog-1.0-SNAPSHOT-jar-with-dependencies.jar占用比较大空间 - 移除大文件
git log --pretty=oneline --branches -- target/worklog-1.0-SNAPSHOT-jar-with-dependencies.jar - 删除文件的历史记录
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch target/worklog-1.0-SNAPSHOT-jar-with-dependencies.jar' -- --all - 提交
git push --force --all - 回收空间
rm -Rf .git/refs/original
rm -Rf .git/logs/
git gc --prune=now
git gc --aggressive --prune=now
- 推送远端
git push origin --force --all
