如何下载特定的git存储库标签?

如何下载特定的git存储库标签?,git,git-checkout,git-tag,Git,Git Checkout,Git Tag,我想从一个存储库中构建,但是如果我克隆该存储库,我得到的源代码会导致程序不稳定。他们标记的源代码(1.2)的最新版本是稳定的,但我不确定如何使用git下载它。根据我在搜索答案时读到的内容,我可以先克隆存储库,然后使用checkout切换到标签 git克隆https://github/project/project.git cd项目 git签出标签/1.2 这会导致头部分离模式,我不确定这是否有问题。然而,我没有得到的是,当我签出时,它说它会切换到“工作树”中的标签。这是否意味着,如果我使用开发团

我想从一个存储库中构建,但是如果我克隆该存储库,我得到的源代码会导致程序不稳定。他们标记的源代码(1.2)的最新版本是稳定的,但我不确定如何使用git下载它。根据我在搜索答案时读到的内容,我可以先克隆存储库,然后使用
checkout
切换到标签

git克隆https://github/project/project.git

cd项目

git签出标签/1.2

这会导致头部分离模式,我不确定这是否有问题。然而,我没有得到的是,当我签出时,它说它会切换到“工作树”中的标签。这是否意味着,如果我使用开发团队提供的脚本构建它,那么它将只构建1.2源代码?我这样做了,我得到了一个看起来仍然不稳定的程序。但是我不能说出它是什么版本,因为它没有说明(他们正在稍后的版本中修复)


我做得对吗?还是我用收银台找错人了。我的意思是,理想情况下,我希望能够下载该标记的源代码,而不必克隆整个存储库,但我似乎不知道如何做到这一点,如果可能的话。

据我所知,你做得对

下载repo将包括所有标签,除非您已将git配置为不下载标签

当您签出一个标记(使用
git checkout 1.2
就足够了)时,您确实会以datached head模式结束。但这不应该是个问题。(运行
git checkout master
返回HEAD)

签出标记后,您的工作目录现在应该位于项目标记发布时的位置

此时,您可能需要删除所有生成的或缓存的文件,然后从头开始构建项目。如何做到这一点取决于代码和构建系统。如果项目使用
make
,则运行
makeclean
通常就可以了

理想情况下,我希望能够下载该标签的源代码 无需克隆整个存储库,但我似乎无法 如果可能的话,想一想怎么做

您可以这样做:

git clone https://github.com/jquery/jquery.git --branch 3.1.1 --depth 1
在没有其他提交历史记录的情况下获取特定标记
--branch
参数可以在git的现代版本中使用标记名和分支名,如中所述<代码>--depth 1生成浅层克隆,执行签出时不需要进一步的历史记录。例如,将详细说明浅层克隆。我使用的示例repo jquery足够大,您可以观察到差异

这将导致分离状态,这就是它的本意