在执行git clone时,是否可以获得进度条?我想知道,因为我目前正在做一个git克隆,到目前为止已经花了几分钟,我很想知道它是否会很快完成。
git clone
acruukt91#
不完全是。git clone有不同的阶段:1.发现需要发送的对象(“计数对象:nnn”)1.压缩并发送这些对象1.索引收到的包
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
型
8i9zcol23#
我目前正在做一个git克隆,到目前为止已经花了几分钟,我很想知道它是否会很快完成。在Git 2.10(2016年第3季度)中,git clone --progress将更加冗长。Jeff King的commit 38e590e(peff)(由Junio C Hamano于commit a58a8e3 Aug. 2016年第四届)
git clone --progress
peff
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。没有必要为终端显式地写它。
check_everything_connected
Checking connectivity
done
check_connected()
--progress
uyto3xhc4#
你可能想看看文件夹
$project/.git/objects/pack
字符串克隆时,应该有一个以tmp_pack_开头的文件。它包含当前正在下载的git包。有了这些信息,你就可以知道持续时间了。
tmp_pack_
vyswwuz25#
git clone --progress怎么样?
pbwdgjma6#
这可能不是问题的直接答案。在我的例子中,当我试图获取git-lfs clone(一个大型语言模型)的进度时(这可能需要相当长的时间),如果您使用的是Linux,我只需进入克隆目录并执行watch du -ksh
git-lfs clone
watch du -ksh
6条答案
按热度按时间acruukt91#
不完全是。
git clone
有不同的阶段:1.发现需要发送的对象(“计数对象:nnn”)
1.压缩并发送这些对象
1.索引收到的包
阶段1涉及从每个分支头遍历提交图,找到所有提交和关联对象:由于事先不知道有多少提交,因此无法测量其进度。遗憾的是,这通常是克隆操作中占用大量时间的地方。
stage2确实有一个进度计数器,尽管它计数的是对象而不是体积(因此它的速率是变化的,特别是当存储库有大的blob时)
阶段3和4有进度计数器,尽管它们通常比前两个阶段快得多。
c7rzv4ha2#
您可以:
字符串
来监视临时内容大小的变化,以了解情况。
型
允许您监视,而不必重新键入命令。类似下面的一行代码会定期给予你以kB每秒为单位的数据累积速率:
型
8i9zcol23#
我目前正在做一个git克隆,到目前为止已经花了几分钟,我很想知道它是否会很快完成。
在Git 2.10(2016年第3季度)中,
git clone --progress
将更加冗长。Jeff King的commit 38e590e(
peff
)(由Junio C Hamano于commit a58a8e3 Aug. 2016年第四届)
clone
:使用真实的进度表进行连接检查因为克隆存储库的初始连接检查可能很慢,所以0781aa4 (
clone
: let the user know whencheck_everything_connected
is run, 2013-05-03)添加了一个“假”进度表;我们在开始时简单地说“Checking connectivity
”,在结束时说“done
”,中间没有任何东西。由于
check_connected()
现在知道如何做一个真实的的进度表,我们可以放弃我们的假进度表,而使用那个进度表。正如ks1322在评论中所指出的
从终端运行
git clone
时,默认情况下启用--progress
。没有必要为终端显式地写它。uyto3xhc4#
你可能想看看文件夹
字符串
克隆时,应该有一个以
tmp_pack_
开头的文件。它包含当前正在下载的git包。有了这些信息,你就可以知道持续时间了。
vyswwuz25#
git clone --progress
怎么样?pbwdgjma6#
这可能不是问题的直接答案。在我的例子中,当我试图获取
git-lfs clone
(一个大型语言模型)的进度时(这可能需要相当长的时间),如果您使用的是Linux,我只需进入克隆目录并执行watch du -ksh