如何查看pod update或git clone的百分比进度?
如何查看pod update中Git克隆的精确进度?
我完全懂这种卡在git clone环节却看不到进度的焦虑!下面分两种场景给你解决方案:
一、针对pod update的Git下载进度优化
1. 让Git默认显示克隆进度
Pod底层是直接调用Git命令的,你可以全局配置Git,让所有克隆操作默认输出进度信息:
git config --global progress true
配置完成后,再执行pod update MyPod --verbose,Git克隆环节就会输出类似这样的进度:
Cloning into '/var/folders/kj/55ym60x155dctzvc8pvym10r0000gn/T/d20210830-13232-1gq5j6e'... remote: Enumerating objects: 8500, done. remote: Counting objects: 100% (8500/8500), done. remote: Compressing objects: 100% (6200/6200), done. Receiving objects: 67% (5695/8500), 18.2 MiB | 4.5 MiB/s
这样就能实时看到接收对象的百分比和传输速度了。
2. 手动克隆本地仓库,跳过远程克隆
如果不想等远程克隆,你可以先手动把私有仓库克隆到本地(这里能看到完整进度),然后让Pod直接使用本地版本:
# 手动克隆,--progress强制显示进度 git clone --progress git@MyGithubUrl:xxx/MyPod.git -b MyBranch ~/LocalMyPod
然后修改你的Podfile,把远程引用改成本地路径:
# 原来的配置 # pod 'MyPod', :git => 'MyGithubUrl', :branch => 'MyBranch' # 修改为本地路径 pod 'MyPod', :path => '~/LocalMyPod'
之后执行pod update MyPod --verbose就会直接使用本地仓库,不用再远程克隆,速度会快很多。
二、通用Git克隆进度查看方法
1. 直接使用--progress参数
不管是单独执行Git克隆还是其他工具调用,只要给git clone加上--progress参数,就能看到实时进度:
git clone --progress git@MyGithubUrl:xxx/MyPod.git -b MyBranch
2. 监控正在进行的克隆(应急方案)
如果克隆已经开始却没开进度显示,你可以在macOS的终端里,进入临时克隆目录的.git/objects/pack文件夹,查看正在下载的pack-*.pack文件大小,对比远程仓库的总大小来估算进度。比如:
# 查看当前下载的包大小 ls -lh /var/folders/kj/55ym60x155dctzvc8pvym10r0000gn/T/d20210830-13232-1gq5j6e/.git/objects/pack/
不过这种方法比较麻烦,还是提前开--progress更省心。
3. 用GIT_TRACE追踪Git操作
如果想看到更详细的Git传输细节,可以在执行pod update时加上GIT_TRACE=1环境变量:
GIT_TRACE=1 pod update MyPod --verbose
这会输出Git每一步的操作日志,包括数据传输的字节数,也能间接判断进度。
内容的提问来源于stack exchange,提问作者olha




