我正在尝试克隆存储库,大小为 500MB。当我们运行命令时
git clone https://repository.com/repo dir
它将显示克隆状态、速度和克隆的数据量(250MiB|2MiB/s)。但克隆的实际目录将保持为空(.git 除外),直到克隆完成。同时它将在哪里存储克隆的文件?
答案1
该存储库由两部分组成:
Refs(名称到哈希映射)——它们很小,因此在下载时会保存在内存中,然后保存到
.git/packed-refs
和/或.git/refs/*
之后。Pack(压缩历史档案)——下载时写入,下载完成后重命名为。
.git/objects/pack/tmp_pack_<random>
.git/objects/pack/pack-<id>.pack
全新克隆上的工作树文件始终与最顶层提交的内容相同,因此它们不会被单独下载 - 它们只是.git/objects/*
使用刚刚下载的相同包文件提取出来。