<返回更多

如何清除Git历史变更记录

2022-05-09    程序员麻辣烫
加入收藏

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

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

一、创建仓库

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

如何清除Git历史变更记录

 


如何清除Git历史变更记录

 

二、安装工具

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

如何清除Git历史变更记录

 

先下载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历史变更记录

 

2.下载远程仓库

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

git clone --mirror git://example.com/some-big-repo.git
# git clone --mirror http://127.0.0.1:3000/shidawuhen/test.git
如何清除Git历史变更记录

 

3.删除指定文件

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

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

如何清除Git历史变更记录

 

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

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

如何清除Git历史变更记录

 


如何清除Git历史变更记录

 

四、总结

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

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

资料

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

最后

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

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

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>