美文网首页
git tag 操作

git tag 操作

作者: huanghaodong | 来源:发表于2022-03-03 16:01 被阅读0次

git命令-通过tag修复线上bug

步骤如下:

1.主分支回退到打标签的那次提交
2.拉取分支bugfix
3.主分支立即回到最新状态
4.切换到bugfix分支,修改bug,发版本,打新标签
5.合并bugfix分支到主干上
6.手动推送标签到远程

Git与SVN区别

Git和SVN正好相反,git提倡开发时拉分支,各干各的,相互独立,发版本时打标签;而svn呢,平时大家都在主干上干活,发版本时拉个分支,所以呢,svn经常会提交冲突,经常要合并代码,只能先把自己的代码备份,然后下载别人的,再合并。Git只需要合并一次就行了。

为啥会这样呢?因为SVN拉分支真的就是在磁盘上复制一份代码,速度自然是很慢的啦,所以大家都不喜欢拉分支,只有发版本时拉一下。而git呢,拉一个分支其实只不过是增加了一根指针而已,所以很快,发版本时打个标签,其实只是取个别名而已,同样很快。

先提一个问题,如果线上版本遇到bug,老板要求紧急修复这个bug,然后马上发版本,可是这个时候我们的代码新功能已经开发了到一半了,不能回退,怎么办呢?

用过SVN的童鞋都知道,当一个版本发布后,就要拉一个分支做备份,这样以后线上版本出现紧急bug就可以直接在分支上修复后,发版本,然后合并分支到主干上。

现在我们使用Git进行版本管理的时候,则只需要打一个标签就行啦。

模拟

此时master是线上分支,提交记录:

v1.0版本发布 (打过tag,发版)-新功能的N次提交

新功能的N次提交,所以直接回退,不妥当。

先科普下几个命令:

【发版后打tag】

$ git tag 版本名

【查看标签的详情,找出打标签的那次提交的commit id】

$ git tag
$ git show v1.0

image image

然后版本回退到此次提交版本

git reset --hard 7441b8

切记就直接在这改了。
特别注意:通过标签回退版本后,要马上拉一个分支,然后当前主干分支要立即回到原来的位置,否则正在开发的代码可能白干了,然后在这个新拉分支上修复bug,然后合并到主分支,

【基于master拉取新分支】

git checkout -b bugfix

【从bugfix回到master调整HEAD至最新】

$ git checkout master
$ git reflog // 拿到最后一次提交的commitID
$ git reset --hard 最后一次提交的commitID

【切换到bugfix分支>修改bug>提交>合并到master>推送tag到远程】

$ git add .
$ git commit -m "修复第一次发版本的紧急bug"
$ git tag v2.0 //修改完毕,再打个标签,一般标签的版本要升一级,这样下次再出bug了,就直接从这儿改起

$ git checkout master //先切换到主干上
$ git merge bugfix    //再合并修改bug的分支,此时冲突必然。
$ git status //这个时候可以用git status 命令查看谁发生了冲突

`
第一次发版本
<<<<<<< HEAD
第二次发版本
第三次发版本
=======
修复第一次发版本的紧急bug
>>>>>>> bugfix
`
其中<<<<<<Head到======这个是当前分支,也就是master分支的内容,从======到>>>>>>>bugfix,是bugfix分支的内容 
修改冲突很简单啦,把多余的内容去掉就可以了,然后提交代码就解决冲突了
$ git push origin --tags //git push命令是不会推送标签的,这点一定要注意

好了,到这里我们就完成了通过标签修复线上版本的紧急bug,这个时候你就可以删掉本地分支bugfix了,但是不建议你这么做,搞不好线上又出个bug,你就可以直接接着改啦,反正是在本地的分支。

</article>

  1. 删除本地tag

git tag -d tag-name

  1. 删除远程tag

git push origin :refs/tags/tag-name

示例:

打了一个tag v0.1.2
git tag v0.1…2
删除本地tag
git tag -d v0.1.2
删除远程的tag
git push origin :refs/tags/v0.1.2

相关文章

  • git操作笔记

    git tag操作 git tag -l 查看本地tag git ls-remote --tag 查看当前分支远程...

  • GIT实操手册 —— Git Tag是时间的里程碑

    目录 为什么有必要使用Git Tag? git tag的基本操作 git tag的分类轻量级标签创建带有说明的标签...

  • git tag操作

    标签基本概念tag有两种:轻量标签和附注标签,轻量标签就是指向某个提交的引用,而附注型标签带日志是一个单独的提交。...

  • git tag操作

    使用git 标签需要先明白标签是什么,很多情况我们只会使用branch分支而忽略标签 tag应该是用作标记一个里程...

  • git tag 操作

    创建tag 远程操作

  • git tag 操作

    有时我们需要将工作做一个阶段性保存,使用branch觉得太重了一点,那么标签就是一个轻量级解决方案: 打标签: 带...

  • git tag操作

    亲测

  • git tag操作

    显示所有的taggit tag 查看某个版本系列的taggit tag -l v1.0.* 创建标签git tag...

  • git tag操作

    git tag -a v0.1.2 -m “0.1.2版本”git push --tags git tag -d ...

  • git tag 操作

    git命令-通过tag修复线上bug 步骤如下: Git与SVN区别 Git和SVN正好相反,git提倡开发时拉分...

网友评论

      本文标题:git tag 操作

      本文链接:https://www.haomeiwen.com/subject/hwcurrtx.html