在第一次克隆存储库时,git首先接收对象(这很明显),然后花费大约相同的时间"解析增量".在克隆的这个阶段实际发生了什么?
我想知道当它推动变化时git正在做什么,以及为什么它似乎偶尔会推动更多的数据而不是我所做的更改.我对两个增加了大约100行代码的文件进行了一些更改 - 不到2k的文本,我想.
当我将数据推送到原点时,git将其转换为超过47mb的数据:
git push -u origin foo
Counting objects: 9195, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6624/6624), done.
Writing objects: 100% (9195/9195), 47.08 MiB | 1.15 MiB/s, done.
Total 9195 (delta 5411), reused 6059 (delta 2357)
remote: Analyzing objects... (9195/9195) (50599 ms)
remote: Storing packfile... done (5560 ms)
remote: Storing index... done (15597 ms)
To <<redacted>>
* [new branch] foo -> foo
Branch foo set up to track remote branch foo from origin. …Run Code Online (Sandbox Code Playgroud) 当我执行时git push,它显示以下输出
Counting objects: 214, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (213/213), done.
Writing objects: 26% (57/214), 27.44 MiB | 60.00 KiB/s
Run Code Online (Sandbox Code Playgroud)
由此可见,Git 使用了 delta 压缩方法。增量压缩如何工作?它也可以用于其他应用程序吗?如果是,请推荐此类应用程序。