Git仓库瘦身大作战:133M 到 4M 的实战

开局两张图

瘦身前瘦身后

目录

  • 开局两张图
  • 前言
  • 下载 BFG
  • 克隆代码
  • Git 仓库瘦身
    • 清理存储库
    • 储存库 GC
    • 推送仓库
  • Git 瘦身验证
  • 结语
  • 开源项目

前言

在进行项目开发的过程中,代码仓库的体积可能会逐渐增大,特别是在版本控制系统中保留了大量的历史提交记录和不必要的文件。为了减小仓库的体积,提高代码仓库的整体性能,我们可以通过一些工具来进行仓库瘦身操作。下面是一组图片,展示了一个示例项目在瘦身前后的效果。

下载 BFG

首先,我们需要下载BFG Repo-Cleaner工具。可以在临时文件夹中新建一个文件夹(例如D:\Temp),然后通过以下链接下载 BFG Repo-Cleaner

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

克隆代码

在下载BFG之后,我们需要克隆远程Git仓库。打开文件夹 D:\Temp,右键选择 Git Bash Here,然后执行以下命令来克隆远程仓库:

git clone --mirror https://gitee.com/youlaiorg/vue3-element-admin.git

这将在当前文件夹中创建一个名为 vue3-element-admin.git 的裸仓库。

查看下瘦身前的文件大小

Git 仓库瘦身

🌈参考官网:https://rtyley.github.io/bfg-repo-cleaner/

清理存储库

使用 BFG Repo-Cleaner 可以删除一些不必要的文件,以减小仓库的体积。以下是一些清理操作的示例:

  • 删除超过 1MB 的文件:
java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 1M vue3-element-admin.git

  • 删除特定文件夹(例如.vscode):
java -jar bfg-1.14.0.jar --delete-folders .vscode vue3-element-admin.git
  • 删除特定文件(例如package-local.json):
java -jar bfg-1.14.0.jar --delete-files package-local.json vue3-element-admin.git

储存库 GC

清理操作会更新提交历史,但并不会物理删除不需要的内容。为了彻底删除不需要的数据,我们需要运行Git的垃圾收集命令:

cd vue3-element-admin.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive

推送仓库

完成清理和储存库 GC 之后,将更新后的仓库推送到远程仓库:

cd vue3-element-admin.git
git push

Git 瘦身验证

重新克隆代码,然后运行以下命令来查看仓库的大小:

git count-objects -vH

结语

通过 BFG Repo-Cleaner 工具,我们成功地瘦身了 Git 仓库,减小了仓库的体积。这样不仅有助于提高代码仓库的性能,还能节省存储空间,使代码管理更加高效。在项目开发中,定期进行仓库瘦身是一个良好的实践,可以保持仓库的健康状态。

开源项目

  • 微服务商城项目
GithubGitee
开源组织有来开源组织有来开源组织
后端youlai-mall 📖youlai-mall 📖
前端mall-admin🌎mall-admin 🌎
移动端mall-app 🌎mall-app 🌎
  • 前后端分离项目
GithubGitee
开源组织有来开源组织有来开源组织
后端youlai-boot 📖youlai-boot 📖
前端vue3-element-admin 🌎vue3-element-admin 🌎# 开源项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/216299.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统计二叉树中的伪回文路径 : 用位运用来加速??

题目描述 这是 LeetCode 上的 「1457. 二叉树中的伪回文路径」 ,难度为 「中等」。 Tag : 「DFS」、「位运算」 给你一棵二叉树,每个节点的值为 1 到 9 。 我们称二叉树中的一条路径是 「伪回文」的,当它满足:路径经过的所有节点值…

使用 STM32F7 和 TensorFlow Lite 开发低功耗人脸识别设备

本文旨在介绍如何使用 STM32F7 和 TensorFlow Lite框架开发低功耗的人脸识别设备。首先,我们将简要介绍 STM32F7 的特点和能力。接下来,我们将讨论如何使用 TensorFlow Lite 在 STM32F7 上实现人脸识别算法。然后,我们将重点关注如何优化系统…

网络数据结构skb_buff原理

skb_buff基本原理 内核中sk_buff结构体在各层协议之间传输不是用拷贝sk_buff结构体,而是通过增加协议头和移动指针来操作的。如果是从L4传输到L2,则是通过往sk_buff结构体中增加该层协议头来操作;如果是从L4到L2,则是通过移动sk_…

golang defer关键词执行原理与代码分析

使用的go版本为 go1.21.2 首先我们写一个简单的defer调度代码 package mainimport "fmt"func main() {defer func() {fmt.Println("xiaochuan")}() }通过go build -gcflags -S main.go获取到对应的汇编代码 可以在图中看到有个CALL runtime.deferreturn(…

2、用命令行编译Qt程序生成可执行文件exe

一、创建源文件 1、新建一个文件夹&#xff0c;并创建一个txt文件 2、重命名为main.cpp 3、在main.cpp中添加如下代码 #include <QApplication> #include <QDialog> #include <QLabel> int main(int argc, char *argv[]) { QApplication a(argc, argv); QDi…

Edit And Resend测试接口工具(浏览器上的Postman)

优点 可以不用设置Cookie或者Token&#xff0c;只设置参数进行重发接口测试API 使用Microsoft Rdge浏览器 F12——然后点击网络——在页面点击发起请求——然后选择要重发的请求右键选择Edit And Resend——在网络控制台设置自己要设置的参数去测试自己写的功能

Jquery ajax 进行网络请求,同步阻塞引起的UI线程阻塞 (loading图片不显示 )

jax重新获取数据刷新页面功能&#xff0c;因为ajax属于耗时操作&#xff0c;想在获取数据且加载页面时显示加载遮罩层&#xff0c;结果发现了ajax的好多坑。 ajax 执行http网络请示时时&#xff0c;让遮罩层显示&#xff0c;ajax加载完毕后遮罩层消失。 因为我想让loadChart()…

集「才华」与「美貌」于一身的原型设计利器—摹客RP

文章目录 画原型做设计&#xff0c;用摹客RP就够了 初遇摹客再遇摹客RP摹客RP简介与注册摹客RP的突出亮点1️⃣拥有海量矢量图标&#xff0c;满足各种设计场景2️⃣打造高扩展性组件&#xff0c;打破传统组件编辑模式3️⃣海量摹客RP模板例子随意挑选4️⃣实现多人实时协同&…

laravel8安装多应用多模块(笔记三)

先安装laravel8 Laravel 安装&#xff08;笔记一&#xff09;-CSDN博客 一、进入项目根目录安装 laravel-modules composer require nwidart/laravel-modules 二、 大于laravel5需配置provider&#xff0c;自动生成配置文件 php artisan vendor:publish --provider"Nwid…

软件设计中如何画各类图之二深入解析数据流图(DFD):系统设计与分析的关键视觉工具

目录 1 前言2 数据流图&#xff08;DFD&#xff09;的重要性3 数据流图的符号说明4 清晰的数据流图步骤4.1 确定系统边界4.2 识别数据流4.3 定义处理过程4.4 确认数据存储4.5 建立数据流动的连线4.6 细化和优化 5 数据流图的用途6 使用场景7 实际应用场景举例8 结语 1 前言 当…

手动创建映像及在OpenStack云计算平台的镜像应用

目录 一、下载 rhel7.6 安装ISO 二、在VMware 的虚拟机内创建虚拟机 三、更改一些设置 1、使用httpd暴露&#xff08;在外部虚拟机&#xff09; 2、添加软件仓库 3、 安装 ACPI 服务 4、使用 cloud-init 获取公钥 5、安装 cloud-utils-growpart 以允许调整分区大小 6、…

【Spring Boot 源码学习】自定义 Banner 信息打印

Spring Boot 源码学习系列 自定义 Banner 信息打印 引言往期内容主要内容1. ResourceBanner 打印1.1 添加默认的 banner.txt 资源文件1.2 指定任意路径的资源文件1.3 添加自定义的信息 2. ImageBanner 打印2.1 添加默认的图像资源文件2.2 指定任意路径的图像资源文件2.3 添加自…