1.说明

在开发过程中,我们经常会碰到这样的问题,我们使用GIT做开发,如果有个新的功能开发,我开发到一半的时候,这时需要发布版本,这个时候就发布版本就非常麻烦。
如果使用主干,分支的模式,这个问题就比较好解决了。我们可以在分支上做开发,使用主干发布,当分支完成开发完成后,我们可以清理分支。

在开发过程中,为了规范开发,我们统一使用分支主干的开发模式,也有些情况,比如我修改一行代码的这种情况,也可以不用创建一个新的分支。

2.分支开发规范

2.1 分支规范

有三个分支,develop、test、master三个分支;

  1. develop为开发分支,日常在这个分支下开发功能,
  2. test分支为功能测试分支,面向测试同事。
  3. master分支为生产环境的代码,面向用户;

在接到新功能之后,大家会在 develop 分支下共同开发,觉得没问题之后,会通过git merge将 develop 代码合并到 test 分支中,然后发布到测试服务器,当测试通过后,会再次将 test 分支的代码合并到 master 分支中去。当需要发版时,由测试将主版本打上TAG,TAG是不允许修改的。

这里有个问题,合并 develop 这个到test 分支的动作必须由测试人员处理,开发人员只管在develop 上进行开发,不能进行合并,原因是如果开发一直合并,那么test分支就不会稳定。

2.2 临时任务流程:解决中途需要修复BUG

有时候项目规划了一个大版本,开发周期需要 2 个月,当我们开发到一半时候,产品经理突然说要搞个活动页面,需要在中间插入一个小版本,需要一周后上线,这个时候我们的开发分支就比较被动。

如果此时直接在当前开发分支基础上,开发活动页面的任务,将来上线会遇到麻烦,因为大的迭代版本还未开发完。而如果直接在test分支上开发任务不经过develop分支,将来等我们develop分支的大版本迭代开发完成时候,会在test分支合并develop分支代码,可能遇到代码冲突问题,因为两个分支都有新版本,Git 不知道以哪个版本为主。

解决方案,我们可以先从develop分支切换到test分支中去,然后从test分支基础上中新建一个tmp临时开发分支,在tmp分支中开发功能。

当开发完成之后再切回test分支,使用git rebase命令将tmp分支的提交记录复制到test分支中去,这样就可以交给测试人员测试后发布新版本了。不过为了避免将来develop分支的版本开发完成后,与test分支合并产生代码冲突问题,我们还需要切换到develop分支中,同样使用git rebase命令将tmp分支上提交的版本复制过来,这样就保障了临时任务可以提前单独发布到线上去,将来还不会产生代码冲突问题。

3 . 实现合并的步骤

3.1 创建一个新的git仓库

3.2 将本地仓库推到远端仓库

在该目录下执行。

git init
git add --all
git commit -m "Initial Commit"
git remote add origin http://zhangyongguo@dev.aps360.cn:7990/scm/gitdemo/demo.git
git push -u origin master

3.3 创建一个新的分支

并切换到新的分支。

3.4 推送分支到服务器端

4.分支代码合并

4.1 在主干添加文件并提交

4.2 切换到分支并修改

合并主干代码。

在分支增加一行代码。

4.3 切换到主干合并分支修改

可以看到分支的代码被合并到主干了,这个演示,我们并没有使用 pull request,操作更简单。

文档更新时间: 2022-03-12 14:35   作者:zyg