git clone的进度指示器

nx7onnlm  于 2023-08-01  发布在  Git
关注(0)|答案(6)|浏览(239)

在执行git clone时,是否可以获得进度条?我想知道,因为我目前正在做一个git克隆,到目前为止已经花了几分钟,我很想知道它是否会很快完成。

acruukt9

acruukt91#

不完全是。git clone有不同的阶段:
1.发现需要发送的对象(“计数对象:nnn”)
1.压缩并发送这些对象
1.索引收到的包

  1. checkout 收到的文件
    阶段1涉及从每个分支头遍历提交图,找到所有提交和关联对象:由于事先不知道有多少提交,因此无法测量其进度。遗憾的是,这通常是克隆操作中占用大量时间的地方。
    stage2确实有一个进度计数器,尽管它计数的是对象而不是体积(因此它的速率是变化的,特别是当存储库有大的blob时)
    阶段3和4有进度计数器,尽管它们通常比前两个阶段快得多。
c7rzv4ha

c7rzv4ha2#

您可以:

du -s .git

字符串
来监视临时内容大小的变化,以了解情况。

watch du -s .git


允许您监视,而不必重新键入命令。类似下面的一行代码会定期给予你以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

8i9zcol2

8i9zcol23#

我目前正在做一个git克隆,到目前为止已经花了几分钟,我很想知道它是否会很快完成。
在Git 2.10(2016年第3季度)中,git clone --progress将更加冗长。
Jeff King的commit 38e590epeff
(由Junio C Hamano于commit a58a8e3 Aug. 2016年第四届)

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

因为克隆存储库的初始连接检查可能很慢,所以0781aa4 ( clone : let the user know when check_everything_connected is run, 2013-05-03)添加了一个“假”进度表;我们在开始时简单地说“Checking connectivity”,在结束时说“done”,中间没有任何东西。
由于check_connected()现在知道如何做一个真实的的进度表,我们可以放弃我们的假进度表,而使用那个进度表。
正如ks1322在评论中所指出的
从终端运行git clone时,默认情况下启用--progress。没有必要为终端显式地写它。

uyto3xhc

uyto3xhc4#

你可能想看看文件夹

$project/.git/objects/pack

字符串
克隆时,应该有一个以tmp_pack_开头的文件。它包含当前正在下载的git包。
有了这些信息,你就可以知道持续时间了。

vyswwuz2

vyswwuz25#

git clone --progress怎么样?

pbwdgjma

pbwdgjma6#

这可能不是问题的直接答案。在我的例子中,当我试图获取git-lfs clone(一个大型语言模型)的进度时(这可能需要相当长的时间),如果您使用的是Linux,我只需进入克隆目录并执行watch du -ksh

相关问题