• 注册
  • 后端开发博客 后端开发博客 关注:0 内容:3653

    【Git技术专题】如何使用git中的tag进行版本开发控制?

  • 查看作者
  • 打赏作者
  • 当前位置: 职业司 > 后端开发 > 后端开发博客 > 正文
    • 后端开发博客
    • 分享达人

      什么是tag

      • git仓库的tag是git版本库的一个标记,指向某个commit id标记的快照记录指针,所以,标签也是版本库的一个快照。

      • tag主要用于发布版本的管理一个当版本发布后,可以为git当前的HEAD(commit id)打上 v.1.0.1、v.1.0.2等这样的标签。

      • tag感觉跟branch有点相似,但是本质上和分工上是不同的。

      tag的特征

      • tag对应某次commit节点, 是一个点,是不可移动的。

      • branch对应一系列commit,是很多点连成的一根线,有一个HEAD 指针,是可以依靠 HEAD 指针移动的。

      • 所以,两者的区别决定了使用方式,改动代码用branch ,不改动只查看用 tag。

      创建标签

      添加tag

      git tag用作上线发布的时候打tag处理:

      处理命令为:
      git tag -a v1.0-beta -m "v1.0 beta版本发布上线"
      

      创建轻量级标签,不用-a,-m等参数

      例如
      git tag v1.0
      

      给指定的commit打Tag

      git tag -a v0.1.1 9fbc3d0
      

      可加-m添加注释

      查看所有的tag版本

      • git tag :查看tag列表
      • git tag --list :查看tag列表
      • git tag -l :同理查看tag列表

      命令git checkout [tagname] 切换标签。

      git checkout v1.0
      

      删除tag

      git tag -d tagName
      
      删除本地名为“v1.0”的Tag
      git tag -d v1.0
      

      git push origin :refs/tags/<tagname> # 删除一个远程标签

      这时只能在本地可以看到自己新建Tag,在远程中央仓库中还是看不到在Tags下有如何内容,因为我们还没把它推送到中央仓库上

      推送到远端

      例如:

      git push origin v1.0
      
      推送全部未推送过的本地标签
      git push origin --tags
      

      如果没有和远程没有同步,可以先拉下来

      git pull --rebase origin master
      

      再上传

      git push -u origin master
      
      推送所有标签
      git push origin --tags
      

      此处对历史提交做tag处理

      • git log --pretty=oneline --abbrev-commit
      15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment'
      a6b4c97498bd301d84096da251c98a07c7723e65 beginning write support
      0d52aaab4479697da7686c15f77a3d64d9165190 one more thing
      6d52a271eda8725415634dd79daabbc4d9b6008e Merge branch 'experiment'
      0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc added a commit function
      4682c3261057305bdd616e23b64b0857d832627b added a todo file
      166ae0c4d3f420721acbb115cc33848dfcc2121a started write support
      9fceb02d0ae598e95dc970b74767f19372d61af8 updated rakefile
      964f16d36dfccde844893cac5b347e7b3d44abbc commit the todo
      8a5cbc430f1a9c3d00faaeffd07798508422908a updated readme
      

      现在,假设在 v1.2 时你忘记给项目打标签,也就是在 “updated rakefile” 提交。 你可以在之后补上标签。 要在那个提交上打标签,你需要在命令的末尾指定提交的校验和(或部分校验和):


      • git tag -a v0.9 -m "v0.9版本发布上线" <commit-id> # 对历史提交做tag处理

      (总结)推送本地标签到远程仓库

      • git push origin v1.0-beta # 推送到远程仓库
      • git push origin v1.0-beta:refs/tags/v1.0-beta # 等效上一条
      • git push origin --tags # 一次性推送全部尚未推送到远程的本地tags

      删除远程tag

      • git tag -d tag-name
      • git push origin :refs/tags/tag-name

      覆盖原有的tag

      • git tag -f lilerong

      查看相应标签的版本信息

      git show tagName //git show 命令,并连同显示打标签时的提交对象

      idea中创建标签tag、并推送到远程仓库

      创建tag

      【Git技术专题】如何使用git中的tag进行版本开发控制?

      创建完成后,推送标签到远程仓库

      接着输入tag名(一般都是有规则的 不是随便写的) 【Git技术专题】如何使用git中的tag进行版本开发控制?

      由于不是在当前最新版本打入的标签,push时需要选择push tags (all),不然不能push。

      【Git技术专题】如何使用git中的tag进行版本开发控制?

      在GitLab标签中就可以看到刚才push的标签

      请登录之后再进行评论

      登录

      手机阅读天地(APP)

      • 微信公众号
      • 微信小程序
      • 安卓APP
      手机浏览,惊喜多多
      匿名树洞,说我想说!
      问答悬赏,VIP可见!
      密码可见,回复可见!
      即时聊天、群聊互动!
      宠物孵化,赠送礼物!
      动态像框,专属头衔!
      挑战/抽奖,金币送不停!
      赶紧体会下,不会让你失望!
    • 实时动态
    • 签到
    • 做任务
    • 发表内容
    • 偏好设置
    • 到底部
    • 帖子间隔 侧栏位置:
    • 还没有账号?点这里立即注册