我有一系列的提交,我想要推送到我的远程存储库,但我正在使用数据上限的互联网连接,我想知道提交是多大决定是否推送它现在或以后,当我使用更大的数据上限时。
当你处于中间位置时,你可以看到推动有多大,但有没有办法弄清楚实际推动之前有多大?
答案 0 :(得分:11)
可能是种。通过bash
,假设origin/master
是您的目标分支:
$ echo $(git merge-base HEAD origin/master)..HEAD | git pack-objects --revs --thin --stdout --all-progress-implied > packfile
检查生成的packfile
的大小可以让您了解需要发送多少数据才能使遥控器保持最新状态。
当我试图弄清楚我的上传包大小时,我从older answer采用了这种方法。这有点像黑客,因为你需要生成一个packfile
- 理论上,一旦你知道本地和远程改变的提交范围,你可以问git
的名字那些对象(递归问题,因为对象可能引用其他对象)并计算这些对象的大小。
(然后再次生成包文件包那些对象 - 就像git push
那样 - 所以尺寸更能代表发送的内容。)
如果你有其他开发人员在你希望推动的分支上工作,那么任何估计都没有实际意义,因为你可能必须在推送到远程之前运行git fetch
,这意味着传输未知数量的数据!