我正在尝试如何下载Git存储库的特定标签,它比当前版本落后一个版本。

我看到git网页上有一个前一个版本的标记,对象名是长十六进制数。

但根据网站的说法,版本名为“标记版本1.1.5”。

我尝试了这样的命令(名称已更改):

git clone http://git.abc.net/git/abc.git my_abc

我确实得到了一些东西——一个目录,一堆子目录等等。

如果它是整个存储库,我如何获得我正在寻找的版本?如果没有,我如何下载该特定版本?


当前回答

根据彼得·约翰逊的回答,我为自己创建了一个很好的别名:

alias gcolt="git checkout $(git tag | sort -V | tail -1)"

又名“git checkout最新标签”。

这依赖于GNU版本的sort,它可以恰当地处理lOranger指出的情况:

v1.0.1
...
v1.0.9
v1.0.10

如果您使用的是mac,请brew安装coreutils,然后调用gsort。

其他回答

我这样做了

git checkout tags/20210511 -b 20210511-release

try:

git clone -b <name_of_the_tag> <repository_url> <destination>

如果可以使用linux sort命令对标记进行排序,请使用以下命令:

git tag | sort -n | tail -1

例如,如果git标记返回:

v1.0.1
v1.0.2
v1.0.5
v1.0.4

gittag|sort-n|tail-1将输出:

v1.0.5

gittag|sort-n|tail-2|head-1将输出:

v1.0.4

(因为您要求第二个最近的标签)

要签出标记,请首先克隆repo,然后键入:

git checkout v1.0.4

..或您需要的任何标签。

根据彼得·约翰逊的回答,我为自己创建了一个很好的别名:

alias gcolt="git checkout $(git tag | sort -V | tail -1)"

又名“git checkout最新标签”。

这依赖于GNU版本的sort,它可以恰当地处理lOranger指出的情况:

v1.0.1
...
v1.0.9
v1.0.10

如果您使用的是mac,请brew安装coreutils,然后调用gsort。

git clone --branch my_abc http://git.abc.net/git/abc.git

将克隆回购,并将您留在您感兴趣的标签上。

git克隆状态1.8.0的文档。

--分支还可以获取标记,并在生成的存储库中的提交时分离HEAD。