我正在尝试如何下载Git存储库的特定标签,它比当前版本落后一个版本。
我看到git网页上有一个前一个版本的标记,对象名是长十六进制数。
但根据网站的说法,版本名为“标记版本1.1.5”。
我尝试了这样的命令(名称已更改):
git clone http://git.abc.net/git/abc.git my_abc
我确实得到了一些东西——一个目录,一堆子目录等等。
如果它是整个存储库,我如何获得我正在寻找的版本?如果没有,我如何下载该特定版本?
我正在尝试如何下载Git存储库的特定标签,它比当前版本落后一个版本。
我看到git网页上有一个前一个版本的标记,对象名是长十六进制数。
但根据网站的说法,版本名为“标记版本1.1.5”。
我尝试了这样的命令(名称已更改):
git clone http://git.abc.net/git/abc.git my_abc
我确实得到了一些东西——一个目录,一堆子目录等等。
如果它是整个存储库,我如何获得我正在寻找的版本?如果没有,我如何下载该特定版本?
当前回答
您可以使用gitarchive下载给定标记或提交id的tar球:
git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar
您还可以导出标签的zip存档。
列表标记:查看标签0.0.10.1.0导出标记:gitarchive-o/tmp/my-repo-1.0.zip--prefix=my-repo-0.1.0/0.1.0笔记:您不需要指定格式。它将由输出文件名拾取。指定前缀将使代码导出到目录(如果包含尾随斜杠)。
其他回答
您可以使用gitarchive下载给定标记或提交id的tar球:
git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar
您还可以导出标签的zip存档。
列表标记:查看标签0.0.10.1.0导出标记:gitarchive-o/tmp/my-repo-1.0.zip--prefix=my-repo-0.1.0/0.1.0笔记:您不需要指定格式。它将由输出文件名拾取。指定前缀将使代码导出到目录(如果包含尾随斜杠)。
我经常使用一个
git clone --branch <tag_name> <repo_url>
我查看了git结账文档,发现了一件有趣的事情:
git checkout-b<new_branch_name><start_point>,其中<start_point>是提交的名称开始新分支的位置;默认为HEAD
因此,我们可以将标记名(因为标记只是提交的名称)称为:
>>git checkout-b 1.0.2_branch 1.0.2稍后,修改一些文件>>git push--标记
P.S:在Git中,你不能直接更新标签(因为标签只是提交的标签),你需要签出与分支相同的标签,然后提交到它,然后创建一个单独的标签。
git clone --branch my_abc http://git.abc.net/git/abc.git
将克隆回购,并将您留在您感兴趣的标签上。
git克隆状态1.8.0的文档。
--分支还可以获取标记,并在生成的存储库中的提交时分离HEAD。
根据彼得·约翰逊的回答,我为自己创建了一个很好的别名:
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。