专栏首页华创信息技术Git清理commit中历史提交的大文件

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

文章时间: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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Git编译安装教程/Linux安装Git最新版

    版本请自行访问网站自取:https://www.kernel.org/pub/software/scm/git/

    华创信息技术
  • git配置同时使用 Gitlab、Github、Gitee(码云) 共存的开发环境

    Host github.com HostName github.com User git #默认就是git,可以不写 IdentityFile ~/.ss...

    华创信息技术
  • SQL Server杀死正在使用该数据库的所有进程

    华创信息技术
  • Git - 简易指南

    本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动;最后是 HE...

    Lemon黄
  • [Git] 代码管理之 Git(三)Git 服务器的搭建

    我们平时使用git的时候,都是我们直接去拉取别人的仓库的代码,然后修改后提交到git服务器去,那如果我们想自己搭建自己的Git服务器该怎么做呢?

    轻舞飞扬SR
  • 大数据分析:关于GIT的实用技巧

    通常情况下,我们会在自己的独立分支中完成需求开发,此时就会有需求将自己的分支和其他分支进行对比。这个功能可以通过1 git diff branch1 branc...

    成都加米谷大数据
  • git/repo

    Rock_Lee
  • Git命令大全

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30...

    神葳
  • Git学习笔记(1) -- 创建和修改项目

    当你设置好gitosis(使用gitosis来配置管理git服务器端)后,就可以使用git来管理你的项目了。

    EltonZheng
  • Git常用命令

    如果嫌输出信息太多,看得眼花缭乱的,可以试试git log --pretty=oneline

    得野

扫码关注云+社区

领取腾讯云代金券