文章目录
- 概述
- 示例
- 创建标签 tag
- 查看tag
- 删除本地标签
- 推送标签
- git 根据tag创建分支
- 回退到tag
- 参考
概述
常常为发布上线某个版本打上一个标签,表示这是什么版本,这样后续找起来就很方便。
如果没有标签只能通过commit历史去查找,而且commit版本显示的都是一串2dad2sdfa字符串。
tag操作本质是对某次commit进行额外的打标签,因此依附于某次commit
,甚至可以一一对应
示例
首先要切换至某个分支
切到主干master
git checkout master
创建标签 tag
git tag -a test -m "20210615mars" //创建标签, -a 指定标签名称,-m 指定标签的注释。无需指定commit id,系统会默认最新的这个commit id
git tag test //创建轻量级标签,不用-a,-m等参数
git tag test 1b2e1d63ff //轻量级标签,并且指定 给commit id = 1b2e1d63ff 的提交进行打标签
由于tag和提交强绑定,因此,tag操作也类似提交,有本地和远程概念,需要push才能入远程库
查看tag
git tag //列出git中现有的所有标签
git show XXX(标签名) //git show 命令查看相应标签的版本信息,并连同显示打标签时的提交对象
此时你可以看到 tag 相对应的 commit id
删除本地标签
git tag -d tagName:
推送标签
默认创建的标签只存储在本地,不会自动推送标签,需手动推送指定标签:
git push origin tagName
git push origin --tags: 推送所有标签
注意:tag和branch是有逻辑关系的,tag是属于某个特定branch的
,虽然你可以在任意分支通过git tag命令查看所有的tag,但是通常命名为master-tagxxx 、dev-tagxxxx,进行区分
推送标签可以指定分支 git push origin develop tagName ,上面是推送到develop 分支,如果不指定分支,指当前所在的分支。一般不会跨分支提交tag
git 根据tag创建分支
在项目中我们需要根据tag创建分支.现将创建步骤总结一下.在你的dev分支上有一个tag为v1.0
1.执行:git origin fetch 获得最新.
2.通过:git branch <new-branch-name> <tag-name>
会根据tag创建新的分支。
例如:git branch newbranch v1.0 会以tag v1.0创建新的分支newbranch。
3.可以通过git checkout newbranch 切换到新的分支。
4.通过 git push origin newbranch 把本地创建的分支提交到远程仓库。
现在远程仓库也会有新创建的分支了。
回退到tag
如果想让指定的分支回退到某个tag,先 git show tagxxx进行查看,commitId,然后 git reset --hard commitId
当然这种回退一般没啥意义,大多数场景还是依据tag,重新拉分支,然后打补丁
参考
git 使用tag分支