2.4:项目分支应用(Branch)
在代码Clone和Push时,默认都是直接在master分支上进行操作,但在实际使用中,master分支的代码是面向生产环境的、经过测试的稳定版本,而新版本的开发都是在另外的分支上进行的(比如Develop分支)。
Master分支的版本会比Develop分支的版本低。
开辟另外的Develop分支,可以实现:
- 新版本的开发在Develop分支上进行,当新版本提交时,让Jenkins等持续发布系统从该分支获取新版本代码,部署在测试环境中进行测试;
- 当Develop分支的代码通过测试,认为可以部入生产环境时,由开发提出合并请求(Merge),经领导同意后合并到Master分支;
- Master分支在合并了Develop分支后,也就实现了版本更新,这时就可以考虑往生产环境部署,以实现新功能了。
2.4.1:创建分支
在项目页面,点击Branch,进入项目分支页面:
点击 New branch:
创建名为develop的分支:
2.4.2:从 develop 分支克隆项目
在克隆时使用-b develop
指定分支:
root@node111:/workspace# git clone -b develop git@192.168.1.121:test-software/test-app1.git
查看当前分支:
root@node111:/workspace# cd test-app1/
root@node111:/workspace/test-app1# git branch
* develop
2.4.3:将代码更新提交到 develop 分支
更新代码到v3:
root@node111:/workspace/test-app1# vim index.html
<h1> testapp-1 page v1 </h1>
<h1> testapp-1 page v2 </h1>
<h1> testapp-1 page v3 </h1>
提交:
当前分支为branch,在git push时也会上传到develop分支。
root@node111:/workspace/test-app1# git add .
root@node111:/workspace/test-app1# git commit -m "v3"
root@node111:/workspace/test-app1# git push
2.4.4:验证 master 和 develop 分支的版本差异
2.4.5:发起 Merge Request(合并请求)
当develop分支的代码通过测试后,就可以发起合并请求,由领导批复将其合并到master分支。
develop分支的代码更新由yqc用户编写,所以由yqc用户发起合并请求。
yqc用户登录Gitlab,进入项目页面,点击 Create merge request:
填写合并请求:
2.4.6:合并分支
开发者发起合并请求后,审批人会受到相关邮件通知,点击链接进入Gitlab:
立即合并:
合并通过后,合并请求的发起者会收到相关邮件通知:
2.4.7:验证 master 和 develop 分支的版本是否一致
master分支:
develop 分支:
在合并之后,就可以安排 Jenkins 从master分支获取代码并部署到生产环境了。