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 다운로드)를 사용하여 트리가 생성됩니다.

관련 정보