git - 如何获取远程git中的最新标签列表?

标签 git tags

当你有本地 git 仓库时,有很多方法可以获取最新的标签。

但我想获取远程仓库中最新标签的列表。

我知道“git ls-remote”,当你使用像 x.y.z(其中 x、y、z 是数字)这样的标签时,一切都很好。 但是当标签看起来像“test-x.y.z”和“dev-x.y.z”时,我注意到大量的“test”标签会 pull 出任何新的“dev”标签,这是不正确的。

那么,你想如何解决这个问题?

最佳答案

您使用 Linux 吗?如果是这样你可以使用这个命令

git ls-remote --tags | grep -o 'refs/tags/dev-[0-9]*\.[0-9]*\.[0-9]*' | sort -r | head | grep -o '[^\/]*$'

它将显示 10 个最新标签(名称为 dev-x.y.z)

UPD
您可以使用此 bash 脚本获取最新标签:

#!/bin/bash

TAGS=("dev-[0-9]*\.[0-9]*\.[0-9]*" "test-[0-9]*\.[0-9]*\.[0-9]*" "good-[0-9]*" "new [0-9][0-9][0-9]")

for index in ${!TAGS[*]}
do
    git ls-remote --tags | grep -o "refs/tags/${TAGS[$index]}" | sort -rV | head | grep -o '[^\/]*$'
done

只需在数组中添加您想要的 TAGS 正则表达式,您将获得每个标签的 10 个最新标签。如果您想获得更多或更少的标签,只需将参数 -n 添加到 head 命令'head -n 5'或'head -n 15'即可。

以防万一。将其保存在文件夹 ~/bin 中(例如名称为 git_tags),然后添加可执行权限(chmod +x git_tags),这将允许您从任何地方运行此 bash 脚本(只需键入 git_tags)。

关于git - 如何获取远程git中的最新标签列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20734181/

相关文章:

git - Bitbucket 服务器 Webhook 到 Jenkins : Error: Jenkins response: No git jobs using repository

git - 错误 : Cannot Spawn C:\Path To\TortoiseGit\Bin: No such file or directory

wordpress - 轻松移动环境:deploybot,docker还是手动grunt/gulp设置?

git - 具有模块的多个 GitHub 根的 IntelliJ 项目

asp.net - <% : and <%= in ASP. NET MVC 和有什么区别?

html - vue,如何以编程方式动态地单击将组件添加到 DOM 特定位置?

tags - 我无法在 Jekyll 中获取 site.tags[some_tag].size

php - <?php> 标记内的每个 PHP 代码片段是否都有自己的变量范围?

jquery - 保存并调用文本区域中用户突出显示的选择

windows - Git core.safecrlf 对具有相同行尾的文件的不同行为