预测在git推动中将推送多少数据

我偶尔会有一个昂贵的互联网连接,我想知道(至少大约)在git push中将多少数据推送到远程。
其实我觉得我喜欢我的评论足以把它作为一个答案!

当你推,git创建一包所有必要的对象,并将其上传到远程。这意味着我们正在寻找一种预测包装尺寸的方法。由于包被压缩,这使得很难根据差异或对象大小进行任何操作;我们真正想做的只是看看这个包将会有多大。如果您可以在构建包之后中断推送,并根据包的大小决定继续进行,但这不是很可能。我最好的猜测是尝试重新创建将被推送并检查的包。

捆绑文件基本上是包含标题信息的包(如果您喜欢,请查看the source)。这意味着它是一个方便的瓷器命令,它将创建一个你所关心的大小的文件。 (比手动使用pack-objects要容易得多)。使用这样的东西:

git bundle create foo.bundle ^origin/master master

这将给你一个包含所有需要掌握的所有东西,因为遥控器具有原始/主机 – 与git push origin主机应该是一样的。如果你有其他的分支机构,那么你可以把它们推上去,它只是采取rev-list args:

git bundle create foo.bundle ^origin/master master ^origin/topic topic ...

只需检查创建的包的大小;它应该几乎相当于你最终推动的。这的确意味着你最终不得不重新创建包(一次使用捆绑包和一次推送),但除非这是一个很大的推动,需要很长时间才能打包,这不应该是一个大问题。

http://stackoverflow.com/questions/4179842/predict-how-much-data-will-be-pushed-in-a-git-push

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:预测在git推动中将推送多少数据