美文网首页半栈工程师
《Git/Gitlab进阶》八:测试.git文件夹中object

《Git/Gitlab进阶》八:测试.git文件夹中object

作者: 紫狐挽诗 | 来源:发表于2020-02-21 19:44 被阅读0次

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

    相关文章

      网友评论

        本文标题:《Git/Gitlab进阶》八:测试.git文件夹中object

        本文链接:https://www.haomeiwen.com/subject/vffrfhtx.html