Git之分支与版本

一、Git分支和标签介绍

1.1 分支与标签规范与关系

1.分支
dev/test/pre/pro(即master)

2.标签
Tag格式: 主版本号.次版本号.修订号-类型标签,其中类型标签可为:alpha、beta、rc、r。
Tag示例:1.0.0-alpha、1.0.0-beta、1.0.0-rc、1.0.0-r

 注1:有的公司在版本命名时,前面加v,“-”替换成“_”,更加详细一点还可以在修订号后面添加发布日期
      v1.0.0.191220_r,这都是可以的

3.分支与标签的关系
dev–>alpha
test–>beta
pre–>rc
pro–>r

3.1 master 主分支

对应线上(正式环境)的代码,一旦版本上线由测试人员发送合并matser邮件,开发人员将对应上线tag版本合并至master分支。

3.2 release 主分支

同 master 分支,预发环境通过之后,上线之前,合并 release 分支。

3.3 dev-* 辅助分支

从 master 拉取,用于新需求(版本)开发

*号为版本号+期次号

3.4 bugfix-* 辅助分支

从 master 拉取,用于快速修复线上Bug

*号为bug英文简称+期次号

3.5 release-* 辅助分支

从 master 拉取,用于确保当前版本是基于线上最新版本迭代,可处理与线上代码存在的冲突。

任务辅助分支在测试环境通过之后,上预发环境之前,务必拉取一个 release-* 分支。

号为对应的 dev- 或 bugfix-* 的*

1.2 分支的作用

假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,
不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

怎么办?
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,
而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作

1.3 四个环境以及各自的功能特点

四个环境分别是:dev、test、pre、pro(master),中文名字:开发环境、测试环境、灰度环境、生产环境

dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。
test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定
pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。
pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境。

1.4 分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:
1.首先,pro分支(即master)应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

2.那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,
再把dev分支合并到master上,在master分支发布1.0版本

3.修复bug时,我们会通过创建新的bug分支(即test)进行修复,然后合并,最后删除;

4.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

二、分支的使用

2.1 查看分支

1.查看分支,此命令会列出所有分支,当前分支前面会标一个*号
git branch //查看本地分支
git branch -a //查看远程分支

在这里插入图片描述在这里插入图片描述

2.2 创建/切换分支

2.创建分支
git branch name //仅仅保存本地,远程还需要push
git push origin <远程分支名>
3.切换分支
git checkout name
4.创建+切换分支
git checkout -b name

在这里插入图片描述

创建dev分支

在这里插入图片描述

切换分支到dev

在这里插入图片描述

提交分支到远程仓库

在这里插入图片描述在这里插入图片描述

2.3 分支的用处

分支的作用就是保障代码不丢失,具有极高的安全性,分支之间的区别也是很明显的

首先我们在dev分支上创建一个文件并且提交到远程仓库上

在这里插入图片描述

现在是dev分支有Order.java这个文件,我们切换到master分支

在这里插入图片描述

这个分支是没有Order.java这个文件的

2.4 合并某分支到当前分支

简单的来讲,接收把dev里面的Order.java的内容合并到master分支上
命令 git merge name
注意:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
使用用git log --graph命令可以看到分支合并图。

首先我们如果要把dev的内容合并到master中,那么就要先切换到master分支上执行该命令

在这里插入图片描述

在执行git push 上传到远程仓库

在这里插入图片描述在这里插入图片描述

2.5 删除分支

6.删除分支(分本地和远程)
git branch //查看本地分支
git branch -d name //删除本地分支

 git branch -a                  //查看远程分支
 git push origin --delete dev   //删除远程分支

这边演示删除本地分支,注意如果要删除改分支,那么就要切换到其他分支上删除分支

首先先随便创建一个分支

在这里插入图片描述

执行删除分支

在这里插入图片描述

三、标签的使用

3.1 查看所有标签

命令 git tag
现在码云上面是没有标签的

在这里插入图片描述在这里插入图片描述

3.2 创建标签

git tag 标签名
假如现在是一期工程,那么标签名就可以为:v1.0.0.20220913._alpha
第一个v1代表主版本号
第一个0代表此版本号
第二个0代标修订号(目前还没有修复bug,所以是0)
然后后面接时间点
最后的_alpha代表dev版本(什么标签与分支关系有)

在这里插入图片描述

创建完后查看标签,发现有一个标签了

3.3 标签推送远程仓库

命令 git push origin 标签名

在这里插入图片描述在这里插入图片描述在这里插入图片描述

假如现在dev分支下开发人员找到Bug,且又已经提交了一个标签,那么等开发人员修改完Bug后再次提交新的标签(这边博主把测试环境与开发环境结合一起用了)

在这里插入图片描述在这里插入图片描述

到这我们的测试版本已经顶板了,最终我们需要把dev分支合并到master分支上,然后打上标签,最后上传标签到远程仓库中

在这里插入图片描述

可以看到最终标签里面有修改的内容

在这里插入图片描述

3.4 删除标签

命令 git tag -d 标签名
这边演示测试版本

首先查看一下一共有多少标签

在这里插入图片描述

这边删除v1.0.0.20220913._alpha

在这里插入图片描述


版权声明:本文为qq_63531917原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。