我正在克隆Linux内核库。存储库是如此巨大,我的网络是如此之慢,以至于我无法一次克隆它。这可能会使我的电脑保持整整一周。
如果我停止克隆中期操作,进度将会丢失。我如何部分克隆git存储库?
答案 0 :(得分:3)
克隆无法恢复,如果它被中断,您需要重新开始。可能有几种解决方法:
您可以使用浅层克隆,即git clone --depth=1
,然后您可以使用git fetch --depth=N
加深此存储库,增加N.但免责声明是,我从未尝试过。
另一种选择可能是git-bundle。捆绑包本身是一个文件,您可以通过HTTP或FTP下载简历支持(通过BitTorrent,rsync或使用任何下载管理器)。您可以让某人为您创建一个包,然后下载它并从中创建一个克隆。更正原始仓库中的配置和下一次提取。
答案 1 :(得分:2)
我不确定你的意思是单独的,但git clone
将克隆整个回购,因为没有办法克隆回购的某些部分。
但是你可以只用一次提交和/或只有一个分支
进行浅层克隆git clone --depth=1 --single-branch --branch master
这将抓住master
分支的最后一次提交。
答案 2 :(得分:0)
git clone --depth 100
只能获取最后100次提交。
一般来说,看起来你实际想要的东西是不受支持的:
所有人都说“这还不存在。”
但是一些大型回购也会主持“哑”的http方式来检索回购(不是 git-layer clone)来解决这个问题。 Linux内核可能。
答案 3 :(得分:0)
克隆实际上是一系列较小的步骤。简而言之,它首先下载引用列表,然后检索每个引用的包文件或松散目标文件。目前无法自动恢复中断的克隆,因为克隆通常会发送一个大包文件,但是通过一些工作和研究,您应该能够手动请求更小的包,就像随着时间的推移进行一系列拉动的人一样。
查看at the git book chapter on transfer protocols和the git fetch-pack command以获取更多信息。另外,git的源代码可以在github上找到,因此您可以自己添加一个简历选项,或者至少使用它来了解克隆是如何在内部完成的。