Git版本控制总结(第一篇:合并分支)

在实际项目中,我们通常使用如下图所示的分支进行版本间的管理和控制:

1. master: 主分支,主要用来版本发布。

2. develop: 日常开发分支,该分支正常保存了开发的最新代码。

3. feature: 具体的功能开发分支,只与 develop 分支交互。

4. release: release分支可以认为是master 分支的未测试版。比如说某一期的功能全部开发完成,那么就将 develop 分支
		 合并到  release 分支,测试没有问题并且到了发布日期就合并到master 分支,进行发布。
		 
5. hotfix:线上 bug 修复分支。

在这里插入图片描述

场景 一 : 现在有dev本地分支与远程分支,master本地分支与远程分支,现在需要将dev的分支代码合并到master主干上(此类场景通常用于简单的开发,其弊端在于develop分支只有发布完了才能进行下一个版本开发,开发会比较缓慢。):

思路步骤 :

1.切换到本地分支dev上,并且pull拉取一下远程dev分支上的改动地方(git pull origin dev)

2.将所有本地修改进行commit并且push到远程dev分支上,保证没有遗漏的,确保当前本地dev与远程dev是一致的
  (git push origin dev)

3.将当前本地分支切换到本地master上(git checkout master)

4.将本地分支dev合并到本地master上,需要注意的是在进行merge(合并)的时候需要禁用fast-forward模式
  (git merge --no-ff -m "message" dev)5.将本地已经合并了dev分支的master进行push到远程master上 (git push origin master)

场景二 :在开发过程中(即在dev分支中),需要多个功能模块进行开发,并且每一个功能模块都是独立的,此时可以使用feature分支(feature分支是基于dev分支的,需要合并到dev分支):

思路步骤 :

1.从dev分支上建立一个feature分支,并切换到该分支进行开发(git checkout -b  myfeature develop)

2.开发完成后,提交修改文件到本地仓库暂存区(git add . 然后 git commit -m "message"3.将feature分支合并到develop分支(先切回dev分支:git checkout dev 然后:git merge --no-ff -m "message" myfeature )

3.合并完成后需要删除此feature分支(git branch -d myfeature)

4.将本地分支dev分支push到远程dev分支 (git push origin dev)

场景 三 :在开发工作基本完成后,我们需要进行版本构建以及系统化测试,此时则需要用到release分支,release分支可以理解为是pre-master,即待发版本。(release分支是基于dev分支的,需要合并到主分支和dev分支):

思路步骤 :

1.从dev分支上建立一个release分支,并切换到该分支进行开发(git checkout -b  release-1.2 develop)

2.开发完成后,提交修改文件到本地仓库暂存区。(git add . 然后 git commit -m "message"3.将release分支合并到develop分支(先切回dev分支:git checkout dev 然后:git merge --no-ff -m "message"  release-1.24.将release分支合并到master分支(先切回master分支:git checkout master然后:git merge --no-ff -m "message"  release-1.25.合并完成后需要删除此release分支(git branch -d release-1.2)

6.将本地分支dev、master分支push到远程dev、master分支 (git push origin dev和git push origin master)

场景 四:在版本发布后,出现紧急线上bug需要及时修复时,则需要用到 hotfix 分支(hotfix 分支是基于master分支的,需要合并到主分支和dev分支)

思路步骤 :

1.从master分支上建立一个hotfix分支,并切换到该分支进行开发(git checkout -b  hotfix-1.2.1 master)

2.开发完成后,提交修改文件到本地仓库暂存区。 (git add . 然后 git commit -m "message"3.将hotfix分支合并到develop分支(先切回dev分支:git checkout dev 然后:git merge --no-ff -m "message"  hotfix-1.2.14.将hotfix分支合并到master分支(先切回master分支:git checkout master然后:git merge --no-ff -m "message"  hotfix-1.2.15.合并完成后需要删除此hotfix分支(git branch -d hotfix-1.2.1)

6.将本地分支dev、master分支push到远程dev、master分支 (git push origin dev和git push origin master)

另外:Git进行版本管控时,明确的版本号可增强可发人员的理解。

a.主版本.次版本.修订号
 
	1.0.0
	
	版本号主要有3部分构成(由两个.分割成三部分)主版本、次版本、修订号:
	
	主版本:程序的主版本号,除非系统做整体重构,一般不变化
	
	次版本:功能版本号,一般为功能迭代的版本号,每次版本号为上一次正常按迭代计划发版的次版本 + 1;主版本发生变更,次
			版本需重置为0
			
	比如:上次按正常按迭代计划发版的版本号为v1.9.0,本次版本号为 v1.(9+1).0,即 v1.10.0
	
	修订号:每次线上BUG修复,该版本号相对上次修订号+1 (前提:相同主版本以及次版本);主版本和次版本发生变更,修订号需重置为0
	
	比如:上次修订号为v1.9.3,本次版本号为 v1.9.(3+1),即 v1.9.4
	
b. 分支命名规范

	1.主分支:

	  master:master 分支就叫 master 分支
	  develop:develop 分支就叫 develop 分支
	  
	2.辅助分支:
	
		1 Feature 分支
			feature/v1.16.0_xxx
			feature/v1.16.0_yyy
			feature/v1.16.0_zzz
			v1.16.0 表示当前迭代的版本号,xxx、yyy、zzz 表示当前迭代的功能或业务单元的名称
		
		2. Release 分支
			release/v1.17.0
			release/v1.18.0
			v1.17.0、v1.18.0 根据上线需求和系统上线计划,合理规划版本号,每个大版本号表示一次上线正常上线过程。
		
		3. Hotfix 分支
			hotfix/v1.17.1
			hotfix/v1.17.2
			v1.17.1、v1.17.2 表示v1.17.0 这个版本做了2次线上问题热修复。

参考文档:https://www.jianshu.com/p/92305d949c0e

发布了15 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u013769274/article/details/103227449
今日推荐