15

AFAIK,git push --tag将 refs/tags 下的每个标签推送到远程。我想知道git中是否有办法只推送一些匹配通配符或正则表达式的标签?

例如,我的仓库有标签v1.0、、v1.1和。我只想推。我试过v2.0v2.1v2.*

git push <repo> refs/tags/v2.*

并得到错误

致命:refspec 的远程部分在 refs/tags/v2.* 中不是有效名称

当然,我总能做到

cd .git && ls refs/tags/v2.* | xargs git push <repo>

但这并没有气味。

4

2 回答 2

15
git tag | grep '^v2\.' | xargs --no-run-if-empty  git push <repo>
  • .git可能不是目录,它可能根本不存在。子模块有指向根存储库的文件。或者你可以GIT_DIR设置到其他地方。
  • 当没有标签符合您的条件时,您不想进行推送。
于 2013-02-09T03:13:10.960 回答
7
git push <remote> tag <tag>

在你的情况下,它将是

git push origin tag v2.*
于 2020-03-22T16:44:54.117 回答