AFAIK,git push --tag
将refs / tags下的每个标签推送到远程。我想知道git中是否有一种方法只能推送一些与通配符或正则表达式匹配的标签?
例如,我的repo包含标记v1.0
,v1.1
,v2.0
和v2.1
。我只想推v2.*
。我试过了
git push <repo> refs/tags/v2.*
并收到错误
致命:refspec的远程部分不是refs / tags / v2中的有效名称。*
当然,我总能做到
cd .git && ls refs/tags/v2.* | xargs git push <repo>
但这并不能闻到遗憾。
答案 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.*