git怎么删除安装记录?如何清除Git历史变更记录

以前公司的一个项目代码,从2014年一直存活到了2021年,目前应该还在被使用。整个代码将近2G,git文件极大,其中很大的一个原因是代码里存放过apk文件。如此大的项目,导致下载、发布很困难。

最初打算创建一个新的远程仓库用来替换旧仓库,但是该项目涉及的位置和使用者太多。另外一个方案是删除apk的变更记录,项目也会变小很多。此处推荐一个工具,能够较快的删除Git的历史变更记录。

一、创建仓库

创建远程仓库,里面有README.md文件,做两次提交,分别提交数字1和数字2。如下图所示:

git怎么删除安装记录?如何清除Git历史变更记录(1)

git怎么删除安装记录?如何清除Git历史变更记录(2)

二、安装工具

这款工具名为bfg,官方地址为:https://rtyley.github.io/bfg-repo-cleaner/。

git怎么删除安装记录?如何清除Git历史变更记录(3)

先下载jar文件到本地:

wget https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar

如果没有Java,则需要进行安装:

apt install default-jre java -v

为了方便执行,我们可以设置别名:

alias bfg='java -jar bfg-1.14.0.jar'

三、操作1.删除文件

为了删除变更记录,需要先删除该文件。

git怎么删除安装记录?如何清除Git历史变更记录(4)

2.下载远程仓库

创建新的目录,将远程仓库下载下来

git clone --mirror git://example.com/some-big-repo.git # git clone --mirror http://127.0.0.1:3000/shidawuhen/test.git

git怎么删除安装记录?如何清除Git历史变更记录(5)

3.删除指定文件

bfg --delete-files README.md test.git

通过日志能够看到删除情况:

git怎么删除安装记录?如何清除Git历史变更记录(6)

cd test.git git reflog expire --expire=now --all && git gc --prune=now --aggressive git push

通过git历史,发现sha1值有变更,而且里面的改动已经消失了

git怎么删除安装记录?如何清除Git历史变更记录(7)

git怎么删除安装记录?如何清除Git历史变更记录(8)

四、总结

bfg的优势在于速度快,如果项目大是因为几个大文件导致的,大家可以用这种方案进行操作。

另外bfg的命令有很多,可以删除文件、可以根据文件大小等删除,我们可根据需求灵活使用。

资料
  1. 三种清除Git提交历史的方法
  2. [因累积太多无法提交github,如何清除历史变更记录?](https://segmentfault.com/q/1010000004996998)
  3. 官网
最后

大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:https://shidawuhen.github.io/

往期文章回顾:

  1. 设计模式
  2. 招聘
  3. 思考
  4. 存储
  5. 算法系列
  6. 读书笔记
  7. 小工具
  8. 架构
  9. 网络
  10. Go语言
,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页