当你有本地 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/