我使用以下命令克隆了一个git repo,但在收到所有对象之前中断了克隆。当我打断克隆时,新的目录(' some-project')还没有创建,但是,git告诉我,我收到了100 + mb的数据。如果我让克隆完成,那么数据就会出现在某个项目中。但是因为有些项目' dir从未创建过,数据在哪里?
git clone https://git.somehost.org/some-project.git
Cloning into 'some-project'...
remote: Counting objects: 5646714, done.
remote: Compressing objects: 100% (593005/593005), done.
^Cceiving objects: 9% (510470/5646714), 106.60 MiB | 739.00 KiB/s
答案 0 :(得分:2)
Git创建克隆目标并随时将文件放入其中。如果你中断了克隆过程,Git会删除克隆目标,并带有文件。
答案 1 :(得分:1)
Git以“对象”的形式存储所有内容。那些位于本地存储库中的.git/objects
下。在正常使用中,这些对象是文件内容(“blob”),目录列表(“树”),提交,签名标签和各种小事。
您下载的所有内容也都在那里。
事实上,您可以在下载时观看它。抓取任何非常大的存储库(例如,Rails或其他),在下载时,列出新存储库中的所有文件ls -lR rails
)。
你会找到这样的文件:
.git/objects/pack/tmp_pack_9UcqDb
“pack”只是在一个较大的文件中打包的一堆git对象,用于压缩/存储优化。
当您按^ C时,git谢天谢地删除它创建的新目录。