论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
SqlServer
›
处理.git文件夹过大出现臃肿题目
处理.git文件夹过大出现臃肿题目
水军大提督
金牌会员
|
2024-7-20 16:49:19
|
显示全部楼层
|
阅读模式
楼主
主题
650
|
帖子
650
|
积分
1950
1、题目配景
在软件开发过程中,版本控制是一个至关重要的环节。Git 作为一种盛行的分布式版本控制体系,被广泛应用于各种项目中。然而,近期我们发现在进行项目发版时,Git 克隆项目的时间明显增加,严峻影响了发版的效率。颠末分析,我们发现题目重要出在项目文件过大,导致克隆过程痴钝。
缘故起因
:开发误操纵上传Jar包,导致项目变大,后面就算删除jar,但是有commit记录,依旧导致文件过大。
正常大小:226M
非常大小:2.6GB
2、环境介绍
项目名称
: xxxx_adc_backend
代码托管平台
: GitLab
重要分支
: pre-fjfsim
清算工具
: BFG Repo-Cleaner
3、清算缘故起因
在开发过程中,项目中引入了一些大文件,这些文件不光增加了代码库的体积,还影响了代码的推送和拉取效率。为了进步项目的整体性能和维护性,我们决定采用 BFG Repo-Cleaner 进行清算。
4、清算步骤
1. 开发人员克制推送代码
在开始清算之前,须要确保全部开发人员停止推送代码,避免在清算过程中产生新的提交。
2. 运维备份代码
运维人员须要对 xxxx_adc_backend 项目进行备份,以便在清算过程中出现题目时可以快速回滚。
3、查询大文件记录
参考文档:https://blog.csdn.net/cysear/article/details/102823671
注意:记录是commit中,最好定位到有题目的分支,在题目分支上操纵。比如我的大文件记录,在pre-fjfsim 上,所以我指定的是 pre-fjfsim
#克隆仓库的镜像
git clone --mirror -b pre-fjfsim git@gitlab.fujfu.com:ownit/ownit_test.git
复制代码
git clone --mirror:克隆堆栈的镜像。镜像克隆会克隆全部分支和标签,但不会克隆工作目录和历史记录。
-b pre-fjfsim:指定克隆的分支为 pre-fjfsim。
git@gitlab.fujfu.com
wnit/ownit_test.git:堆栈的 URL。
#查找大文件的 SHA-1 哈希值
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
复制代码
git rev-list --objects --all:列出全部对象的 SHA-1 哈希值。
grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
复制代码
:这部分是一个复杂的管道命令,用于过滤出大文件的 SHA-1 哈希值。
git verify-pack -v .git/objects/pack/*.idx:验证打包文件,并表现每个对象的详细信息。
sort -k 3 -n:根据第三列(文件大小)进行数字排序。
tail -5:表现排序后的最后五行,通常是最大的五个文件。
awk '{print$1}':打印每行的第一个字段,即 SHA-1 哈希值。
grep:使用这些 SHA-1 哈希值作为搜刮模式,从 git rev-list --objects --all 的输出中过滤出相关的对象。
4、使用 BFG 清算大文件
BFG Repo-Cleaner 是一个高效的工具,可以帮助我们快速清算 Git 历史中的大文件。以下是详细的清算步骤:
参考记录:https://rtyley.github.io/bfg-repo-cleaner/
克隆项目
git clone --mirror -b pre-fjfsim git@gitlab.xxxx.com:ownit/ownit_test.git
复制代码
清除大文件
java -jar bfg.jar --delete-files xxxx_adc_backend_mac.tgz ownit_test.git
java -jar bfg.jar --delete-files xxxx_adc_backend_mac_2024_0202.tgz ownit_test.git
复制代码
删除文件重构索引
cd ownit_test
git reflog expire --expire=now --all && git gc --prune=now --aggressive
复制代码
检察容量
git count-objects -vH
复制代码
更新长途
git push -f
复制代码
5、开发人员查抄
清算完成后,开发人员须要查抄代码库是否正常。如果一切正常,则可以继续推送代码。如果发现非常,可以根据备份代码进行回滚。
5、总结
通过这次清算,我们成功地从 xxxx_adc_backend 项目中移除了不须要的大文件,不光减轻了代码库的负担,还进步了代码管理的效率。BFG Repo-Cleaner 以其高效和稳定性,成为了我们清算 Git 历史大文件的首选工具。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
水军大提督
金牌会员
这个人很懒什么都没写!
楼主热帖
MySQL高可用架构搭建实战
让软件飞——“X+”技术揭秘 ...
使用 OpenTelemetry 和 Loki 实现高效 ...
哈希算法-SHA-256-过程详解
DQL语句(一) -----简单select查询 ...
可观测性和传统监控的三大区别 ...
TP 判断IP是否在国内
camunda工作流实战项目(表单设计器+流 ...
SQL99相较于SQL92在多表查询时的新语法 ...
Docker(11)-- DockerFile详解
标签云
挺好的
服务器
快速回复
返回顶部
返回列表