如何在执行'git fetch'时找到diff对象的大小?

时间:2013-10-29 02:28:58

标签: git

执行git fetch时,如何知道从远程传输到本地的对象/更改的确切大小?

2 个答案:

答案 0 :(得分:1)

实际的网络流量大小取决于您在本地拥有的内容,遥控器将为您提供的内容以及用于传输数据的协议。

有关详细信息,请参阅Pro Git book,但简短版本是,如果您使用“智能”协议(git://...ssh://...)来获取,则可以获得“瘦身” pack“包含代表您当前缺少的存储库对象的delta压缩数据,但是针对您在fetch中要求的对象进行压缩。如果您使用“哑”协议,则无法获得该协议,并且您将获得松散的对象(压缩bzip2)或“厚”包。

仅仅查看对象本身的(未压缩的)大小可能不会告诉你太多。

答案 1 :(得分:0)

不是100%确定这是否正确,并且可能有更好的方法,但你可以尝试:

git fetch --dry-run

这应该显示fetch在没有实际进行的情况下会做什么。如果您有适用的远程更改,则应向您显示此信息,例如:

(SHA1)..(SHA2)  master -> origin/master

然后你可以使用带有size标志的cat-file来检查提交,我相信它应该代表你想要的传入更改:

git cat-file -s (SHA2)

返回的数量以字节为单位。我希望这对你有所帮助。