Linuxカーネルのソースコードのgitレプリカが解凍されたtar.xzよりはるかに大きいのはなぜですか?

Linuxカーネルのソースコードのgitレプリカが解凍されたtar.xzよりはるかに大きいのはなぜですか?

カーネルを直接タイプにダウンロードして解凍するtar.xzと、サイズが1GB程度になります。しかし、私がgit cloneそれを介してダウンロードしたときここ、サイズは約7GBです。マスターブランチのみが表示されます。なぜそんなに大きな違いがありますか?

ベストアンサー1

tarballにはtarballの特定のカーネルバージョンのソースコードのみが含まれていますが、gitリポジトリ(cloneを使用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のダウンロード)を使用してツリーが作成されます。

おすすめ記事