.git文件夹过大,给它瘦身

经过验证可用:

  1. 需要瘦身的库 git clone –bare 到本地 ,注意下面name都换成自己的
git clone --bare https://git.server.com/group/name.git
  1. 查看 git 库空间大小
du -sh ./name.git
  1. 查看历史上哪些文件庞大(检查所有分支),-3代表top3的大文件,最后一列的文件路径下面要用
cd name.git
git rev-list --all | xargs -rL1 git ls-tree -r --long | sort -uk3 | sort -rnk4 | head -3
  1. 删除历史文件(此步永久删除,对所有分支 /tag/log 的删除操作)
git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch folder/file1 folder/file2 folder/file3' --prune-empty --tag-name-filter cat -- --all
  1. 删除GIT缓存记录里的内容
rm -rf ./refs/original/
  1. 对 git log 处理,任何时间运行 git reflog 命令可以查看当前的状态
git reflog expire --expire=now --all
  1. 在进行 repack 前需要将所有对这些 commits 的引用去除
git repack -A -d
  1. 执行 gc 压缩
git gc --aggressive --prune=now

–aggressive 最大限度的压缩,会比较缓慢

  1. 检查完整性
git fsck --full --unreachable
  1. 再次查看 .git 空间大小
du -sh ../name.git

11、推送至远程仓库

git push --mirror https://git.server.com/group/name.git

12、结束

你可能感兴趣的:(git)