如何克隆git存储库的特定版本?

9

我正在使用Symfony2,希望在GitHub无法访问的情况下备份我的供应商。

如何克隆存储库的特定版本?

我想通过供应商文件来备份存储库。

语法类似于:

[symfony]
    git=http://github.com/symfony/symfony.git
    version=v2.0.9

现在我该如何告诉Git获取特定版本?是否有类似终端命令的方式:
git clone --mirror http://github.com/symfony/symfony.git --version=v2.0.9

提前致谢


1
当你克隆一个git仓库时,你会得到整个项目的副本。你可以从本地副本中检出任何标签/分支。请参见http://schacon.github.com/git/user-manual.html#how-to-check-out - ilanco
3个回答

19

要告诉git使用这个确切的版本,我会这样做:

git clone http://github.com/symfony/symfony.git
cd symfony

git checkout v2.0.9

一句话概括:

git clone http://github.com/symfony/symfony.git -b v2.0.9

3
以下内容可能会帮助您达到目标:
git clone --branch <branch> <repo>

如果您想要找到特定版本,那么请先从您的工作存储库中创建该版本的分支。操作如下:
# In a local, working repository
git checkout -b v2.0.9-br v2.0.9
git push origin

# Now create your clone from v2.0.9-br

注意,我假设v2.0.9是一个版本(标签),而不是一个分支。如果它是一个分支,那么只需使用'--branch'选项克隆即可。

1

你不能仅通过版本号来克隆一个存储库。你也不能仅通过指定提交哈希来克隆一个存储库。(从Git的角度来看,这几乎是相同的事情)

实际上,你唯一能做的就是通过指定深度(你将拉取的提交数)进行浅克隆:http://linux.die.net/man/1/git-clone

git clone --depth 1 只会拉取最后一个提交。

回到你的问题,如果你担心Github无法访问,你应该将这些项目托管在你的服务器上。


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