由于回购规模很大,我只克隆了它的最新快照:
git clone --depth=1 <url>
此命令仅下载master
分支的最新版本。所以我取了我需要的分支:
git fetch --depth=1 origing testing
有这样的输出:
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 5), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.
From gitlab.com:lambda-hse/tatlin-hse/gotatlin
* branch testing -> FETCH_HEAD
问题是当我这样做时(为了更改我所在的分支(:
git checkout testing
什么也没发生,repo仍在master
分支上。如果不完全克隆回购,我如何克服这个问题?
正如您在输出中可能注意到的,git获取了分支的sha1,但没有在本地创建引用,它只是在FETCH_HEAD 中
* branch testing -> FETCH_HEAD
从那时起,如果你做git log FETCH_HEAD
,你会看到你远处树枝的头。
您可以在本地重新创建分支,方法是指定目标和源,并提供完整路径:
git fetch --depth=1 origin refs/heads/testing:refs/heads/testing
然后
git checkout testing