git clone的进度指示器

Oli*_*nde 21 git progress git-clone

做一个进度条有可能git clone吗?我想知道因为我目前正在做一个git克隆,到目前为止已经花了几分钟,并且很想知道它是否即将完成.

ara*_*nid 17

并不是的.有各种阶段git clone:

  1. 发现需要发送的对象("Counting objects:nnn")
  2. 压缩并发送这些对象
  3. 索引收到的包
  4. 检查收到的文件

阶段1涉及遍历每个分支头的提交图,找到所有提交和相关对象:由于事先不知道有多少提交,因此无法测量其进度.遗憾的是,这通常是克隆操作中很多时间被占用的地方.

阶段2确实有一个进度计数器,虽然它计算对象而不是体积(所以它的速率变化,特别是如果repo有大的blob)

阶段3和阶段4具有进度计数器,尽管它们通常比前两个阶段快得多.


Sas*_*hev 15

你可以做:

   du -s .git
Run Code Online (Sandbox Code Playgroud)

监控临时内容大小的变化以获得想法.

   watch du -s .git
Run Code Online (Sandbox Code Playgroud)

允许您监视而无需重新键入命令.下面的单行内容会定期给出以每秒kB为单位的数据累积率:

    delay=5; prev=`du -sk .git/ | cut -f 1`; sleep $delay; while true; do  cur=`du -sk  .git/ | cut -f 1`; expr \( $cur - $prev \) / $delay ; prev=$cur; sleep $delay; done
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 8

我目前正在做一个git克隆,到目前为止已经花了几分钟,并且很想知道它是否即将完成.

使用Git 2.10(2016年第3季度),git clone --progress将会更加冗长.

请参阅Jeff King()提交的38e590e (由Junio C Hamano合并于2016年8月4日提交a58a8e3)peff

clone:使用真正的进度表进行连接检查

因为克隆存储库的初始连接检查可能很慢,0781aa4(clone:让用户知道何时check_everything_connected运行,2013-05-03)添加了"假"进度表; 我们只是简单地说" Checking connectivity"它开始时," done"最后说什么都没有.

由于check_connected()现在知道如何做一个真正的进度表,我们可以放弃我们的假的,而是使用那个.