长时间使用后,Git 仓库会随着提交次数的增加而变得越来越大,一般情况下并不影响使用,但是对于那些经常需要克隆的仓库来说,就特别影响效率了。比如你是开源提供者,如果仓库过大,别人克隆的时候就很慢了,特别是如果你把代码上传到了国外的网站上时,代码迟迟下载不了,就很影响体验了。
一、在不删库的情况下重置所有提交记录
重置前最好压缩备份重要的 tag ,然后删除所有的本地 tag 和分支。
# 1. 同步本地仓库到最新后创建一个空的临时分支
git checkout --orphan latest_branch
# 2. 添加当前所有文件临时分支
git add -A
# 3. 提交
git commit -am "Initial commit."
# 4. 删除主分支
git branch -D main
# 5. 将临时分支重命名为主分支
git branch -m main
# 6. 强推主分支到远程仓库
git push -f origin main
二、清理 Git 缓存
如果执行了上面的方法,发现仓库的提交还是没有减小,那么你可能需要执行下面的方法。
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git fsck --full --unreachable
git repack -A -d
git gc --aggressive --prune=now
git push --force origin master