前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018-10-21-如何使用git清理本地tag

2018-10-21-如何使用git清理本地tag

作者头像
黄腾霄
发布2020-06-10 11:18:30
9740
发布2020-06-10 11:18:30
举报
文章被收录于专栏:黄腾霄的博客

git tag 与branch 不同,tag是用于为指定的commit添加共享信息的。因此当你辛辛苦苦的为本地仓库清理完了tag列表后,同事又推送了之前的本地tag,心情可想而知。


为什么同事会将本地tag全部推送上来呢?

  • 可能性1:git push --tags,有可能你的小伙伴在本地仓库创建了多个tag,在提交代码时期望对这些tag全部进行更新,于是使用了git push --tags,顺手将你清理的tag又全部推送回来了。
  • 可能性2:设置了push = +refs/tags/*:refs/tags/*,有可能你的小伙伴在git设置中对git push同时,对所有的tag进行推送。

那么这个问题怎么解决呢?

  • 堆栈网有小伙伴表示在git1.7.8-1.8.5.6版本期间,直接使用git fetch <remote> --prune --tags可以将本地tags与远端tags进行同步,并清理本地的无用tags。但是这个方法在git1.9.0之后已经失效了
  • 而对于新版本的git,推荐使用git fetch --prune <remote> "+refs/tags/*:refs/tags/*",在fetch的同时,更新远端的tag列表。
  • 另外,一劳永逸的方法是在git设置git fetch= +refs/tags/*:refs/tags/*, 命令行中写法为git config --local --add remote.origin.fetch "+refs/tags/*:refs/tags/*",之后每次``git fetch –prune`,都会更新tag列表

参考链接: git tag - Do git tags get pushed as well? - Stack Overflow git tag - Remove local git tags that are no longer on the remote repository - Stack Overflowhttps://stackoverflow.com/questions/41843266/microsoft-windows-python-3-6-pycrypto-installation-error)

Does “git fetch –tags” include “git fetch”? - Stack Overflow


本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8git%E6%B8%85%E7%90%86%E6%9C%AC%E5%9C%B0tag.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档