如何在没有得到整个回购的情况下git克隆特定标签?

Shu*_*man 9 git git-clone

我想获得linux内核2.6.22.19源代码来为我的路由器交叉编译东西,但是如果我做的话,repo是巨大的(3gb)

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
Run Code Online (Sandbox Code Playgroud)

然后看看那个标签,克隆花了很长时间,我的带宽是有限的.

如果我跑这个

git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git --branch v2.6.22.19 --single-branch
Run Code Online (Sandbox Code Playgroud)

收到的文件大小约为150mb,这是正确的做法,这个命令是什么意思?v2.6.22.19是标签名称对吗?为什么它可以加床后 - 分支?

克隆后.

[oglop@localhost linux-stable]$ git status
# Not currently on any branch.
Run Code Online (Sandbox Code Playgroud)

Jir*_*ser 11

提供v2.6.22.19是标记名称并且git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git是存储库URL,请尝试以下操作:

git clone --depth 1 --single-branch --branch v2.6.22.19 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
Run Code Online (Sandbox Code Playgroud)

--depth 1最新提交的分支将只下载,这也将与尺寸问题帮助

  • `--single-branch`由`--depth`暗示,因此是不必要的. (4认同)