AFAIK,git push --tag
将 refs/tags 下的每个标签推送到远程。我想知道 git 是否有办法只推送一些匹配通配符或正则表达式的标签?
例如,我的仓库有标签 v1.0
、v1.1
、v2.0
和 v2.1
。我只想推送 v2.*
。我试过了
git push <repo> refs/tags/v2.*
出现错误
fatal: remote part of refspec is not a valid name in refs/tags/v2.*
当然,我总能做到
cd .git && ls refs/tags/v2.* | xargs git push <repo>
但这并没有气味。
最佳答案
git tag | grep '^v2\.' | xargs --no-run-if-empty git push <repo>
.git
可能不是目录,它可能根本不存在。子模块有指向根存储库的文件。或者您可以将GIT_DIR
设置到其他地方。- 当没有标签符合您的条件时,您不想进行推送。
关于git:仅推送特定标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14784229/