1、总览
- master:主分支,主要用来版本发布。
- dev:日常开发分支,该分支正常保存了开发的最新代码。
- dat:测试分支,所有要测试的功能合并到该分支。
- uat:定义为预生产分支,只有要上线的功能才合并到该分支。
- feature:具体的功能开发分支,只与 dev分支交互。
- release:release 分支定义为一个功能的发行版,当feature开发完成后,合并到dev,然后从dev拉取的一个分支。一个功能对应一个release分支。该分支的主要功能为dat测试bug修改。
- hotfix:线上 bug 修复分支。
2、功能开发
2.1 创建一个feature分支
<code class="vim" data-origin=""
>$ git branch //查看当前分支
dat dev * master uat
<code class="vim" data-origin=""
>$ git checkout -b feature-1 dev //从dev拉取feature分支 $ vi test.html //working $ git status $ git add . $ git commit -m 'test' //提交 $ git checkout dev $ git merge --no-ff feature-1 //开发完成,合并到dev
一个功能开发完成,合并到dev,建议merge时加上 —no-ff 参数—no-ff参数的作用如下:
<code class="vim" data-origin=""
2.2 创建一个release分支
git checkout -b release_1 dev // 从dev拉出一个release分支
git checkout dat
git merge --no-ff release_1 // 从release_1合并到dat分支
2.3 如果在dat测试有bug
git checkout release_1
vi test.html
git add .
git commit -m "bug修改"
git checkout dat
git merge --no-ff release_1
2.4 当dat测试通过后,将release分支合并到uat和dev分支下
git checkout uat
git merge --no-ff release_1
git checkout dev
git merge --no-ff release_1
2.5 当uat测试有bug
git checkout release_1
vi test.html
git add .
git commit -m "bug修改"
git checkout uat
git merge --no-f release_1
2.6 当测试通过后,将其合并到dev和dat分支下
git checkout dev
git merge --no-f release_1
git checkout dat
git merge --no-f release_1
git branch -d release_1
2.8 当uat测试通过后,将uat合并到master分支
git checkout master
git merge --no-ff uat
git tag -a v1.0 -m '新功能上线'
2.9 当master有bug,创建hotfix分支
git checkout -b hotfix_1 uat
vi test.html
git add .
git commit -m '修改bug'
git checkout uat
git merge --no-ff hotfix_1
git checkout master
git merge --no-ff uat
git tag -a v1.1 -m "修改bug"
git checkout dat
git merge --no-ff hotfix_1
git checkout dev
git merge --no-ff hotfix_1