为什么Linux内核源代码的git克隆比解压后的tar.xz大很多?

为什么Linux内核源代码的git克隆比解压后的tar.xz大很多?

当我直接以 type 下载内核tar.xz并解压它时,大小约为 1GB。但是当我通过git clone以下方式下载它时这里,大小约为7GB。它仅显示主分支。为什么会有如此巨大的差异?

答案1

tarball 仅包含 tarball 中特定内核版本的源代码,而 git 存储库(使用 克隆git clone)包含内核相当长一段时间的历史记录。即使您在最初克隆时只看到主分支,使用默认克隆参数,您实际上在本地拥有完整的存储库:git log将显示完整的历史记录,git branch --remote将显示所有可用的分支。

如果你只想要最新的提交,你可以使用浅克隆,它会小得多:

git clone --depth 1 ...

或者如果您想要一个特定的日期,

git clone --shallow-since=...

您可以将其与特定分支或标签结合起来,以仅下载该分支的提示或该标签:

git clone --depth 1 --branch v4.10-rc4 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux-4.10-rc4

这会使用 947MiB(以及 159MiB 下载)生成一棵树。

相关内容