git tab
背景
随着项目功能的增加,release版本越来越多,如果出问题,需要对比与上次发布的稳定release版本有哪些变动, 但是release版本可能有很多,可以通过分支来管理(例如我之前), 一个项目建立了很多分支,分支维护成本也越来越大, 而git tag 解决我的难题 就特别合适。理由以及操作如下:
用途
git的远程分支tag主要用于标记和管理版本,有以下几个正确的用途:
-
标记稳定版本:远程分支tag可以用来标记一个稳定的版本,这样其他人就可以方便地下载和使用这个版本的代码。当项目达到一个重要的阶段或者发布了一个稳定的版本时,可以使用git tag命令来创建一个tag标签,并将其推送到远程仓库。其他人就可以通过该标签来获取特定的代码版本,从而确保代码的一致性和稳定性。
-
版本回退:如果在代码的后续开发过程中遇到了一些问题,可以使用远程分支tag来进行版本回退。根据需要选择一个稳定的tag标签,将代码回退到该版本,这样可以避免一些bug的影响,并且能够更加方便地进行问题的排查和修复。
-
发布版本控制:对于需要发布多个版本的项目来说,远程分支tag可以很好地控制版本的发布。可以创建不同的tag标签来标记各个版本,并使用git diff命令来比较不同tag之间的差异,从而确定何时发布哪个版本。
-
需求管理:通过远程分支tag来管理需求也是一种有效的方式。可以使用tag来标记某个需求的完成状态,例如”需求完成”、”需求关闭”等,这样可以清晰地知道每个需求的状态以及当前工作的重点。
总的来说,git的远程分支tag可以用于版本的标记、版本的回退、发布版本的控制以及需求的管理等方面。使用tag能够方便地追踪和管理代码的版本,提高开发效率和代码的稳定性。
1. 创建tag
- git tag 标签名 直接给当前提交版本创建一个 轻量标签
- git tag 标签名 提交版本呢 给指定版本 创建一个 轻量标签
- git tag -a 标签名 -m 附注信息 直接给当前提交版本创建一个 附注标签
2. 查看标签
- git tag
- git tag --list
- git tag -l
- git tag -l xxx: 根据 xxx 进行标签的筛选,例如:git tag -l “v4.0*”(筛选标签进行查看:通配符*)
3. 查看标签提交的信息
- git show 标签名
4. 删除标签
- git tag -d 标签名 删除指定名称的标签
- git push origin :refs/tags/已删除标签名 推送删除tag,服务器同步删除tag
5. 切换到标签分支
- git checkout 标签名称:切换到指定 tag
6. 拉取远程标签
- git pull origin 标签名称:拉取远程仓库指定标签到本地环境下当前标签
7. 推送本地标签到远程仓库
- git push origin --tags:推送所有的标签到远程仓库
- git push origin 标签名称:推送指定标签到远程仓库
8. 检出标签
-
方式1:
- 检出标签:想在这个标签的基础上进行其他的开发操作;
- 操作实质 : 就是以标签指定的版本为基础版本,新建一个分支,继续其他的操作,因此 ,就是新建分支的操作了;
- git checkout -b 分支名称 标签名称:以标签为基础,创建一个新的分支,在新的分支上进行开发
-
方式2:
- 切换到标签: 会有许多提示
$ git checkout v3 Note: switching to 'v3'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 4ead350 commit 3
- git switch -c : 以当前标签为基础,新建一个分支,可以做其它修改
- git switch - 撤销此操作(git switch -c )
- 切换到标签: 会有许多提示
9. 与服务器同步更新 tag
- 场景: (主要是服务器删除了,本地还有的同时创建了一个新的tag, 提交tag使用:
git push origin --tags 会把本地使用tag提交到服务器, 包括服务器已经删除, 但是本地没有删除的
) - 解决方案:
- git tag -l | xargs git tag -d #删除所有本地tag
- git fetch origin --prune #从远端拉取所有信息
10. 参考链接:
- https://juejin.cn/post/7211055301205573690
- https://www.cnblogs.com/chentiao/p/16720838.html