Bla*_*way 11
这有点可能.通过bash,假设origin/master是你的目标分支:
$ echo $(git merge-base HEAD origin/master)..HEAD | git pack-objects --revs --thin --stdout --all-progress-implied > packfile
Run Code Online (Sandbox Code Playgroud)
检查结果的大小packfile将使您了解需要发送多少数据才能使遥控器保持最新状态.
当我试图弄清楚我的上传包大小时,我从一个较旧的答案中采用了这种方法.这有点像黑客,因为你需要生成一个packfile- 理论上,一旦你知道本地和远程改变的提交范围,你可以只询问git这些对象的名称(一个递归问题,因为对象可能参考其他对象)并计算这些对象的大小.
(然后,生成包文件也会打包这些对象 - 就像那样git push- 所以大小更能代表发送的内容.)
如果你有其他开发人员在你希望推动的分支上工作,那么任何估计都没有实际意义,因为你可能必须git fetch在推送到遥控器之前运行,这意味着传输未知数量的数据!