如何使用“git clone --depth 1”命令检出远程分支?

29
我下载了一个巨大的代码库最新版本,我需要获取其中一个分支的最新版本以便测试。
我该怎么做?
当我使用命令git clone --depth 1 url时,我得到了master分支的最新版本,而该分支似乎不存在?
petanb@petrbena:~/Documents/mh$ git checkout flaggedrevs
error: pathspec 'flaggedrevs' did not match any file(s) known to git.
2个回答

49

git clone --depth 1 隐式地包含一个--single-branch选项,默认为主分支,即origin/master

如果你想克隆不同的分支,请告诉git你想要克隆哪个分支。

git clone --depth 1 --branch <分支名> url


24
你可以直接获取你想要的任何内容:
git fetch --depth 1 origin flaggedrevs:flaggedrevs  # `origin`也可以是一个URL
这将从你获取的内容创建一个普通(尽管浅层)分支。为了获得更传统的结果,使用git fetch --depth 1 origin flaggedrevs:refs/remotes/origin/flaggedrevs "复制 origin 的 flaggedrevs 到我的 refs/remotes/origin/flaggedrevs"。
打开 .git/config 并查看它,或者说 git config --get-regexp fetch。如果不明确告诉它要获取什么,那就是它获取的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接