侧边栏壁纸
博主头像
平凡之路博主等级

生活原本沉闷,但跑起来就会有风!

  • 累计撰写 95 篇文章
  • 累计创建 10 个标签
  • 累计收到 13 条评论

目 录CONTENT

文章目录

git 仓库瘦身方法

平凡之路
2025-11-11 / 0 评论 / 0 点赞 / 3 阅读 / 551 字

git仓库在日常使用中经常会因为.gitignore 忽略不到位,导致误推送很多不需要的大文件。这种情况下即使你再删除再推送也没办法减少仓库的占用空间,下面介绍一种能够彻底删除这些不需要文件的方法。BFG下载

第一步:安装 BFG 命令行工具
BFG 依赖 Java 环境,所以确保电脑上已经安装了 Java。官方仓库

第二步:拷贝BFG到仓库目录
将bfg.jar拷贝到仓库的外层目录下。如仓库目录是 git/project1 那么就拷贝到git目录下。

第三步:执行清理命令
提示:执行清理前建议先把整个库备份一份,防止意外!!!
每次命令都会生成日志,放在跟 your-repo.git 仓库平级的 your-repo.git.bfg-report 目录下,有个 deleted-files.txt 可以清晰的看到哪些文件被删除了。

清理所有超过 10M 的文件:

java -jar bfg.jar --strip-blobs-bigger-than 10M project1

清理前 100 大的文件:

java -jar bfg.jar --strip-biggest-blobs 100 project1

清理某个目录

java -jar bfg.jar --delete-folders  test  project1

清理某个类型的文件

java -jar bfg.jar --delete-files "node.exe" project1

BFG默认不会修改分支上的提交,如果你不想在任何分支中看到这个文件的话,可以这么写

java -jar bfg.jar --delete-files "node.exe" --no-blob-protection project1

第四步:更新 Git 历史
确定第三步想要清理的命令都执行完了,运行下面的命令对仓库历史进行改写。

windows下可以分步执行两个命令
git reflog expire --expire=now --all && git gc --prune=now --aggressive

第五步:强制提交到远程仓库

git push --force

注意:这个时候,远程仓库的历史才被真正改写了,重新 clone 之后,将获得瘦身后的仓库。所有协作者删除本地旧仓库,重新 clone 新仓库,防止一不小心又把本地旧仓库 push 上去!!!

0

评论区