将远程存储库克隆到本地时,git clone 将临时文件存储在哪里?

将远程存储库克隆到本地时,git clone 将临时文件存储在哪里?

我正在尝试克隆存储库,大小为 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/*使用刚刚下载的相同包文件提取出来。

相关内容