《Git/Gitlab进阶》八:测试.git文件夹中object数量过大能否影响commit效率?
来源:     阅读:965
依创模板店
发布于 2022-03-15 15:02
查看主页

在此往后的几篇文章,主要是说明少量使用 Git 时比较高级一点的问题或者者比较重要的问题。
除了少量测试说明、功能详情、操作引导之外,还可以增长见识和思考方法,可以一看。

有些测试截图是比较旧(也就几个月),但是目前来看,仍然是 ok 的。

测试过程内容较多,每个步骤都逐一截图以便真实说明,也有列示用法。若不感兴趣,可直接查看总结部分。

测试过程

众所周知,.git 文件夹是 git 管理项目的本地仓库。objects 目录存储所有数据内容,每一次 git commit 都会将信息存到该文件夹。
这部分不清楚,可去官网Git 内部原理 - 底层命令和高层命令和Git 内部原理 - Git 对象等地方再巩固。
所以,一般情况下来看,git commit 的次数过多,object 文件夹体积就会变大,假如非常巨大了,会不会影响到提交的速度?

前置准备

将 github 中的两个项目 tensorflow 和 liunx,clone 一份到本地,并推到自建 gitlab 服务器(内网 1.0Gbps)中,作为测试项目远程仓库。
主要说明 Git 用户端的使用,所以本地需要安装 Git

大概流程

准备两个比较大的项目,分别测试单次 add 和 commit 的耗时。

测试步骤

1 以 tensorflow 项目为例进行 commit 测试
准备了一个 git 文件夹有 360M,提交数量超过 5W 的项目 tensorflow

1.png

测试 commit 之前,先提交一次已有的文件,以免出现干扰

2.png

在 tensorflow 中新建一个文件夹 newfoler,并随便放入几个文件

3.png

再测试 add 及 commit 的效果


4.png

两个命令耗时较短,并没有出现耗时的情况(第一个是 add,第二个是 commit)。排除切换页面和鼠标移动点击的时间,这两个命令耗时只有 1s 左右。

5.png

测试结果看来,一个有着 5W+commit 数量,git 文件夹超过 360M 的项目,在 commit 时并没有发生耗时很长的情况。

其实 git folder 要大于 500M 其实还是非常少的,我在 github 中找了非常久,到目前为止,就只发现 linux 项目超过 500M,提交数量超过 10W。

2 1 以 linux 项目为例进行 commit 测试
准备了一个提交数量和 git folder 都很大的项目(github 上的 linux 项目)

6.png

测试前,先add .一次,避免对 commit 提交速度进行干扰
(实际测试,clone 下来后,第一次git add .是比较耗时间的,好好几分钟)。

在 linux 下新建一个 new_folder 文件夹,并随便放入几个文件,如下

7.png

测试结果来看,完成 add 和 commit 的速度还是很快的

8.png

两个命令耗时较短,并没有出现耗时的情况(第一个是 add,第二个是 commit)。排除切换页面和鼠标移动点击的时间,这两个命令耗时只有 1s 左右。

9.png

再修改少量文件,删除少量文件

10.png

add 和 commit 的耗时仍然不多

11.png

总结

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 软件环境
相关推荐
机器学习快速入门3回归
【设计模式】javascript中的观察者模式
docker 容器日志清除方案
【区势早报】最大非交易所地址一次性转出逾8万枚比特币;?节点资本、DFund等退出火币超级节点
一份Java程序员进阶架构师的秘籍,你离架构师还差多远
首页
搜索
订单
购物车
我的