正则表达式 – 如何删除不在我的本地存储库上的远程标签?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如何删除不在我的本地存储库上的远程标签?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望原点与我的本地标签相匹配.这不应该与修剪本地标签混淆,而是远程.

要修剪本地标记并使我的本地存储库匹配原点我做:

git tag -l | xargs git tag -d
git fetch

我在本地清理了标签,我想推送并删除遥控器中没有的东西.

我一直在手动做,如:

git tag -l | grep -v "[^v2]" | xargs git tag -d  # remove local tags that don't match a pattern
git push origin :refs/tags/2.2.15      # manually remove those tags on remote
git push origin :refs/tags/2.2.16
git push origin :refs/tags/2.2.17
git push origin :refs/tags/2.2.18
...

但是有这么多标签我觉得这可以用不同的方式完成.
那么问题是,如何从远程存储库中删除那些本地没有的标记

解决方法

刚刚在远程仓库上测试它,它工作正常.

我使用cut而不是grep,并将远程标签与本地标签进行比较,然后删除不同的远程标签.

git ls-remote --tags origin | cut -f 2 | xargs basename | comm -23 - <(git tag) | awk '{print ":refs/tags/" $0}'  | xargs git push origin

这不是世界上最优雅的东西,但它确实有效.

猜你在找的正则表达式相关文章