git:只推送特定标签

时间:2013-02-09 02:09:35

标签: git tags

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

例如,我的repo包含标记v1.0v1.1v2.0v2.1。我只想推v2.*。我试过了

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

并收到错误

  

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

当然,我总能做到

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

但这并不能闻到遗憾。

2 个答案:

答案 0 :(得分:14)

git tag | grep '^v2\.' | xargs --no-run-if-empty  git push <repo>
  • .git可能不是目录,可能根本不存在。子模块有文件指向根存储库。或者您可以将GIT_DIR设置为其他位置。
  • 当没有标签符合您的条件时,您不想进行推送。

答案 1 :(得分:3)

git push <remote> tag <tag>

您的情况将是

git push origin tag v2.*