git tag 和 branch 的区别以及使用场景
前言
tag 是什么?
tag , 翻译过来是标签的意思,顾名思义,标签是为了标记某种事物。
tag 是 Git 版本库的一个快照,指向某个 commit 的指针。使用tag 的好处?
tag 的存在,是因为我们需要这种标记的功能。目前的项目开发中,当发布版本时 tag 就派上用场了。例如 v1.0.1,v1.0.2…
另外,git 提供了 tag 的增删改查一系列操作,在 tag 的使用上,可谓非常之方便。tag 和 branch 的区别以及使用场景?
想到这里,你可能觉得 tag 和 branch 有点相似。没错,的确是有点像,但是它们的职责分工和本质都是不同的。
tag 对应某次 commit, 是一个点,是不可移动的。
branch 对应一系列 commit,是很多点连成的一根线,有一个HEAD 指针,是可以依靠 HEAD 指针移动的。所以,两者的区别决定了使用方式,改动代码用 branch ,不改动只查看用 tag。
tag 和 branch 的相互配合使用,有时候起到非常方便的效果,例如 已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以 检出 v2.0 的代码作为一个 branch ,然后作为开发分支。
tag 的简单使用
以下命令都是我使用 tag 过程中一般会使用到的,可以说都是常用命令。
1.创建标签
git tag <tagName> //创建本地tag
git push origin <tagName> //推送到远程仓库
若存在很多未推送的本地标签,你想一次全部推送的话,可以使用一下的命令:
git push origin --tags
以上是基于本地当前分支的最后的一个 commit 创建的 tag ,但是如果不想以最后一个,只想以某一个特定的提交为 tag ,也是可以的,只要你知道 commit 的 id。
git log --pretty=oneline //查看当前分支的提交历史,里面包含 commit id
git tag -a <tagName> <commitId>
2.查看标签
git show <tagName>
//下面两个命令都可以
git tag
git tag -l
git ls-remote --tags origin
3.删除标签
git tag -d <tagName>
git push origin :<tagName>
4.重命名标签
这个本质上是删除掉旧名字 tag ,然后再新建新名字 tag ,然后实现重命名的作用。
如果 tag 只存在本地,那么只需要删除本地的旧名字 tag ,然后新建新名字 tag:
git tag -d <oldTagName>
git tag <newTagName>
git push origin <newTagName> //推送到远程仓库
若已经推送到远程了,那么不仅要删除本地的,还要删除远程的,再重新创建和推送:
git tag -d <oldTagName>
git push origin :<oldTagName>
git tag <newTagName>
git push origin <newTagName> //推送到远程仓库
5.检出标签
git checkout -b <branchName> <tagName>
来源:https://blog.csdn.net/qq_32452623/article/details/73949509
git tag 和 branch 的区别以及使用场景相关推荐
- git tag和branch的区别
命令 區別 git tag 發佈的可下載的軟件包 git branch 所以兩者之間沒有必然聯繫.
- tag 和branch的区别
tag 和branch的区别 Git tag是一系列commit的中的一个点,只能查看,不能移动. branch是一系列串联的commit的线. git tag的用法 我们常常在代码封板时,使用git ...
- git tag和分支的区别_GIT常用命令大全
Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. 克隆远程文件: git clone https://gitee.com/abcd/ ...
- SVN中tag和branch的区别
在SVN中Branch/tag在一个功能选项中,在使用中也往往产生混淆. 在实现上,branch和tag,对于svn都是使用copy实现的,所以他们在默认的权限上和一般的目录没有区别.至于何时用tag ...
- git reset三种模式区别和使用场景(hard,soft,mixed)
简单的理解三种模式: hard reset之后,以仓库为准,仓库,暂存区和工作区保持一致,不一致的全部清除: soft reset之后,工作区内容不变,只更新仓库内容,差异保留在index暂存区: m ...
- git branch分支创建、切换、合并,git tag标签
一)Git分支简介 每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作. 列出分支命令:git branch 创建分支命令:git bra ...
- Git 处理tag和branch的命令
最近想给GitHub 上的项目设置tag,可是使用GitHub Desktop,找了一圈都没找到快速设置Tag 的地方,最后只能通过终端命令来添加了. 想要查看Git 的命令,可以使用 git --h ...
- 查看git当前tag_git 切换到tag或branch分支
git查看tag git查看tag命令: ershixiongdeMacBook-Pro:spring-boot zzs$ git tag v2.2.0.M1 v2.2.0.M2 v2.2.0.M3 ...
- git tag创建、远程推送、回退以及强推push -f
一.给本地仓库分支打轻量级tag标签 1.在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branchdevwhdgray * masteroptimize_sel_drive ...
最新文章
- js new 运算符到底做了什么?
- C# MongoDB简单增删改查使用
- C++ class、struct区别
- 某级数的前两项A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-1。使用非递归的算法求解满足要求的n值的程序。
- C++重载->和*运算符
- 常见机器学习算法思想简单梳理
- eclipse设置黑色主题
- iShot--Mac最强截图工具
- 美赛常用查数据查文献网站
- “Chart“ 图表控件基本操作
- 通俗讲解深度学习和神经网络!
- 【渝粤题库】陕西师范大学201461 司法文书写作作业(高起专)
- Oracle+mybatis+Java批量插入如何提升效率(10W级)
- 【评测】Tecan品牌系列产品
- 记一个openwrt reboot异步信号处理死锁问题
- 我是没有志气的程序员
- DataSheet查询网站
- Linux Glibc幽灵漏洞紧急修补方案;Centos7升级内核到3.18
- ffmpeg中av_log的实现分析
- CES Asia专题|栩栩如生!Artec3D现场展示其3D扫描技术