前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git清理commit中历史提交的大文件

Git清理commit中历史提交的大文件

作者头像
华创信息技术
发布2019-11-11 14:35:32
5.5K0
发布2019-11-11 14:35:32
举报

文章时间:2019年11月10日 14:02:59 解决问题:清理Git中比较大的文件,主要针对历史记录进行清理 ps:因为Git可以恢复版本,所有历史提交过的较大的文件,也会被保存下来,所以我们需要……xx嗯,你懂的。

这里方法有两种,下面方法主要介绍了其中一种

查看目录下的文件的大小

git count-objects -v # 查看 git 相关文件占用的空间
du -sh .git # 查看 .git 文件夹占用磁盘空间
du -d 1 -h  # 列出所有文件的大小

du是linux 的基础命令,很多用法,详情自己去查找其他文档。 因为git的历史文件都是存在一个文件里的,我们使用下面命令可以找出排名前五的文件

git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5

方法一 纯手动(小米+步枪)的方法

直接参考这篇教程即可,写的比较全面,比百度上很多废教程好多了。 记一次删除Git记录中的大文件的过程:https://www.hollischuang.com/archives/1708

方法二 工具化(自动机枪)

工具名称:BFG 工具地址:https://rtyley.github.io/bfg-repo-cleaner/

第一步 下载包文件

直接官网下载即可,bfg-1.13.0.jar 将程序包放到一个文件夹里,为了方便,重命名为bfg.jar

第二步 克隆仓库

clone自己的git repo,使用--mirror参数

git clone --mirror http://192.168.1.199:8099/hcses/hcses-warehouse.git

第三步 清除大文件,文件夹,隐私文件

这里官网给出的命令,可能会不行,我们继续添加参数。 删除文件和删除文件夹的命令

java -jar bfg.jar --delete-files 我是单个文件名字 hcses-warehouse.git --no-blob-protection
java -jar bfg.jar --delete-folders 我是文件夹的名字 hcses-warehouse.git --no-blob-protection

第四步 清理不需要的数据

在完成上面的指令后,实际上这些数据/文件并没有被直接删除,这时候需要使用git gc指令来清除。

cd hcses-warehouse.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive

第五步 推送到GitHub

git push

这里普通推送可能也会报错,我们可以使用强制推送。

git push --force
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这里方法有两种,下面方法主要介绍了其中一种
  • 查看目录下的文件的大小
  • 方法一 纯手动(小米+步枪)的方法
  • 方法二 工具化(自动机枪)
    • 第一步 下载包文件
      • 第二步 克隆仓库
        • 第三步 清除大文件,文件夹,隐私文件
          • 第四步 清理不需要的数据
            • 第五步 推送到GitHub
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档