답변:
가장 쉽고 대역폭 친화적 인 방법은이 작업을 두 번 이상 수행하려는 경우 커널의 git 리포지토리를 복제하고 태그를 기반으로 원하는 버전을 확인하는 것입니다. linux-stable repo 를 복제하는 것이 가장 좋습니다 . 안정된 모든 릴리스에 대한 태그가 포함되기 때문입니다.
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux
git checkout v2.6.36.2
나중에 다른 버전으로 전환하기는 쉽습니다.
git checkout v3.5.2
모든 최신 태그 및 커밋을 포함하도록 저장소를 업데이트하려면 다음을 수행하십시오.
git fetch
예. kernel.org 에는 2.6.36.2를 포함한 모든 버전의 릴리스가 있습니다 . 그러나 대부분의 Linux 배포판은 바닐라 커널 소스에 자체 패치를 적용합니다.
전체 커널 커밋 히스토리 (1 GiB 이상)를 다운로드하지 않으려는 경우 원하는 분기로 이어지는 커널 Git 저장소의 해당 부분 만 다운로드 할 수 있습니다. 예를 들어 버전 4.5에서 Ubuntu 커널을 로컬에서 체크 아웃하려면 다음을 수행하십시오.
git clone --depth 1 --single-branch --branch v4.5 git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
이런 식으로 클론은 약 150MiB입니다.
--depth
--single-branch
에 따르면 BTW를 의미 합니다 man git-clone
.
빠른 컴파일을 위해 하나의 태그를 얻으려면 다음을 수행하십시오.
git clone --depth 1 --branch v4.18 \
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
--depth 1
얕은 복제를 수행하여 복제 시간과 디스크 사용량을 크게 줄입니다.
cgit git 서버가 작동하고 구성되는 방식으로 인해 현재 임의의 커밋이 아닌 태그에 대해서만 작동합니다. 참조 : https : //.com/questions/3489173/how-to-clone-git-repository-with-specific-revision-changeset
참고 : Linux 커널 소스 코드의 git clone이 추출 된 tar.xz보다 훨씬 큰 이유는 무엇입니까?