在此往后的几篇文章,主要是说明一些使用 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

总结

  • 这个 Linux 项目的 git 文件夹和 commit 数量是目前已经发现最大的项目,测试得出 add 和 commit 的时间都是很短,所以应该是不会出现 commit 非常耗时的情况。
  • 所以 commit 的数量太大不会影响 commit 的速度。