-
分支描述
-
长期存在
- online
- 主分支,负责记录上线版本的迭代,该分支代码与线上代码是完全一致的。
- dev
- 开发分支,该分支记录相对稳定的版本,所有的feature分支都从该分支创建。
- 多套开发环境是,命名规范:dev1、dev2
- test
- 测试分支,用于代码上线准备,该分支从dev分支创建,创建之后由测试同学发布到测试环境进行测试,测试过程中发现bug需要开发人员在dev分支上进行bug修复,测试通过以后再合并到test分支,由测试发布到测试环境。在上线之前,需要合并该test分支到online分支。
- 多套测试环境是,命名规范:test1、test2
- online
-
上线后删除
- feature
- 功能分支,用于开发新的功能,不同的功能创建不同的功能分支,功能分支开发完成并自测通过之后,需要合并到dev分支,之后删除该分支。
- 命名规范:feature/*,比如:feature/tie。(建议英文,拼音也可以)
- hotfix
- 紧急bug修复分支,该分支只有在紧急情况下使用,从online分支创建,用于紧急修复线上bug,修复完成后,需要合并该分支到online分支以便上线,同时需要再合并到dev分支。
- 命名规范:hotfix/*,比如:hotfix/fenan(建议英文,拼音也可以)
- bugfix(不常用)
- bug修复分支,用于修复不紧急的bug,普通bug均需要创建bugfix分支开发,开发完成自测没问题后合并到dev分支后,删除该分支。
- 命名规范:bugfix/*,比如:hotfix/mobile (建议英文,拼音也可以)
- feature
-
-
分支合并流程介绍
-
开发
- 根据功能排期,从dev分支创建feature(功能)分支(组长统一创建、管理),比如:tie、bujian。
- 联调测试,把feature(功能)分支通过rebase合并到dev分支。
-
提测
- 提测时把dev分支通过rebase合并到test分支。
-
上线
- 上线把test分支通过rebase合并到online分支。
-
上线以后
- 删除所有feature、hotfix、bugfix分支。
- 删除dev分支,并且从online分支创建dev分支。
-
操作规范
git checkout online //切换到online分支 git branch -D dev //删除本地dev分支 git push origin :dev //删除远程dev分支 git checkout -b dev //创建本地dev分支 git push origin dev:dev //创建远程dev分支
-
- 删除test分支,并且从dev分支创建test分支。
-
操作规范
git checkout dev //切换到dev分支 git branch -D test //删除本地dev分支 git push origin :test //删除远程test分支 git checkout -b test //创建本地dev分支 git push origin test:test //创建远程test分支
-
-
紧急生产bug
- 新建hotfix/*分支,验收通过以后,把hotfix/*分支rebase到dev和online分支,之后删除hotfix分支。
-
一般生产bug(不常用)
-
新建bugfix/*分支,验收通过以后,把bugfix/*分支rebase到dev分支,之后删除bugfix分支。
-
-
二、分支操作常用命令
-
本地操作
-
git add -A #添加文件
git reset . #取消添加文件
git status # 查看状态
git commit [-a] -m "更新说明" #提交更新,-a为包含内容修改和增删,-m为说明信息,也可以使用 -am。
git reset HEAD^ #取消掉本次的提交
-
-
dev分支开发
-
git add -A
git commit -m "更新说明"
git fetch origin dev
git rebase origin/dev #fetch和rebase可以用这条命令替换 git pull --rebase origin dev
# 如果有冲突,修改冲突
git add .
git rebase --continue #继续合并,如果有异常递归操作
git rebase --abort #终止合并
git rebase --skip #跳过本次commit合并
git push origin dev:dev #提交代码
-
-
分支管理
-
# 当前分支为:dev
git branch -a #查看分支信息
git branch test #创建test本地分支,test分支和当前本地dev代码一样
git push origin test:test #把本地分支推送远程仓库,并且创建远程test分支
git branch -d test #删除本地分支
git push origin :test #删除远程仓库test分支
git checkout -b test origin/test # 创建本地test,获取远程仓库test分支最新代码
-
-
test分支合并dev分支
-
git checkout test #先切换到test分支
git pull --rebase origin dev
git pull --rebase origin test
git push origin test:test
-
-
tag管理
-
git tag -a v1.0.0 -m 'version1.0.0' #创建tag
git push origin --tags #提交tag
git tag -d v1.0.0 #删除本地tag
git push origin :refs/tags/v1.0.0 #删除远程仓库tag
-
-
获取test分支最新代码
-
git fetch --all
git reset --hard origin/test # 本地未push代码都删除
-