加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 05:47:16 所属栏目:百科 来源:网络整理
导读:我希望原点与我的本地标签相匹配.这不应该与修剪本地标签混淆,而是远程. 要修剪本地标记并使我的本地存储库匹配原点我做: git tag -l | xargs git tag -dgit fetch 我在本地清理了标签,我想推送并删除遥控器中没有的东西. 我一直在手动做,如: git tag -l |
我希望原点与我的本地标签相匹配.这不应该与修剪本地标签混淆,而是远程.

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读