这是一个例子:
$ git push -u myserver master
Counting objects: 22, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (14/14), 1.89 KiB | 0 bytes/s, done.
Total 14 (delta 10), reused 0 (delta 0)
To myserver.com:git/myrepo.git
ed46414..0cae272 master -> master
Branch master set up to track remote branch master from myserver.
Run Code Online (Sandbox Code Playgroud)
基本上唯一对我来说有意义的数字是"使用多达8个线程"的8,因为我有一个四线程处理器,超线程,因此我可以运行8个线程.
有22个?为什么说22和14,其他8发生了什么?为什么它说0字节/秒,因为它做了东西并花了有限的时间?什么是"总"和"三角洲"和"重用"?
有关示例的详细信息:上面的示例是从Mac OS X上的终端进行了复制粘贴.我手动执行了一个find-replace来替换"myrepo"和"myserver.com",其他一切都是逐字的.存储库有910次提交,自上次推送以来我做了大约3次提交.3个新提交影响了至少3个文件.回购包含超过一千个文件.
Ale*_*uil 64
这仅仅是通过git命令的输出git count-objects -v用于推(相同的命令被调用时输出gc,pull和clone).手册页中的更多信息:git-count-objects(1).
$ git count-objects -v
...
size: 14 # The "Compressing objects: 100% (14/14)" part (the size in KiB)
in-pack: 22 # The "Counting objects: 22" part (the number of objects)
...
Run Code Online (Sandbox Code Playgroud)
Counting objects: 22, done.
Run Code Online (Sandbox Code Playgroud)
这是针对该特定提交计数的git 22内部对象.几乎git中的所有东西都是一个对象,基本上blob保存在各自哈希的.git/objects文件夹中.手册页中的更多信息:9.2 Git Internals - Git Objects.
Compressing objects: 100% (14/14), done.
Run Code Online (Sandbox Code Playgroud)
这是git在发送之前压缩对象.的14/14处于压缩的KIB(14 KIB压缩)的进展.
Writing objects: 100% (14/14), 1.89 KiB | 0 bytes/s, done.
Run Code Online (Sandbox Code Playgroud)
这是git发送(如果是远程)和写入对象.在1.89昆明植物研究所| 0字节/秒是KiB和速度的进展(完成后为0字节/秒).
Total 14 (delta 10), reused 0 (delta 0)
Run Code Online (Sandbox Code Playgroud)
这是git中packfile算法的输出(参见9.4 Git Internals - Packfiles)并且相当模糊.它基本上将未使用的对象(通常是较旧的历史记录)打包在.git/objects/pack中.打包后,git检查它是否可以重复使用包(因此重用的是0部分).的增量0的部分是从包装或从重用KIB增益.
Aka*_*wal 14
Git是一个内容可寻址文件系统.即,它接受一个对象(文件,树,提交)并将其存储在可由哈希处理的文件中.
假设您对文件进行了非常小的更改.git应该将整个文件存储为不同的对象吗?它确实如此.但偶尔(在推送,拉动期间),git会将文件更改计算为增量并存储它们而不是完整文件.
这意味着,最新版本的文件存储完整(因为它应该最容易获得),同一文件的旧版本只是包含两者之间差异的对象,依此类推.
这样git可以节省空间,同时仍然可以为你抛出的任何修订重建文件.
现在回答你的问题:
Counting objects: 22, done.:Git正在计算与您正在推送的提交相关的对象.
Total 14 (delta 10):Git能够通过查找10个增量来减少对象数量.
reused 0 (delta 0):如果已存在delta对象,Git可以重用它们.例如,如果在某些其他文件中可能引入了类似的更改,则delta可能类似且可重用.在这里,没有什么可以重用的.
Writing objects: 100% (14/14), 1.89 KiB | 0 bytes/s, done. 在这里,Git通过网络发送(或写入)对象,您可以看到进度和速度统计信息.
希望这可以帮助.