https://govindustry.coding.net/api/qci-plugin/meta?key=codingcorp%3Atsf_deploy&version=latest&codingProjectName=hrss
https://govindustry.coding.net/api/qci-plugin/meta?key=codingcorp%3Atsf_deploy&version=latest&codingProjectName=hrss-web-government-enterprise-through
一、git flow介绍
1、master(主分支) 主分支,存放经过测试,已经完全稳定的代码,即其放的代码是可随时直接上生产使用的代码。主分支不允许提交代码,release分支经过充分测试后,打tag版本号并合并到master分支
2、develop(开发分支) 开发分支,一开始从master分支中分离出来,用于开发者存放基本稳定代码
3、feature(功能分支) 功能分支,每次开发新功能时候从develop中fork出来一个feature分支,分支名可以采用feature/*的形式命名,如:feature/需求编号-日期,feature/31124-190618,开发完成合并到develop分支,不用时可以将其删除
4、release(预发分支) 预发分支,发布正式版本之前,需要一个预发布的版本进行测试,预发分支一般从从develop拉出,release分支版本命名规范:由4个数字段表示,大版本. Release版本.Hotfix版本.YYmmdd,如release/2.2.0.190403,预发布结束以后,打tag并合并进Develop和Master分支
5、hotfix(修补bug分支) 修补bug分支,若遇到生产出现bug,需要紧急修复,确定对应的release版本后,从master拉出一个hotfix分支,修改完成测试后打tag合并到develop和master分支,如分支名 hotfix/2.2.0.190411。
二、git分支创建与合并
创建分支
如创建feature/31124-190618分支,从develop上,创建并切换feature分支:
$ git checkout develop #切换到dev分支 $ git checkout -b feature/31124-190618 #创建并切换到feature/31124-190618分支
把创建的分支feature推送远程仓库:
$ git push -u origin feature/31124-190618 合并分支:
如把feature/31124-190618分支合并到develop 分支
先切换分支: $ git checkout develop
再合并分支:$ git merge –no-ff feature/31124-190618
最终推送到远程仓库:$ git push origin develop
三、举例说明
假如开发一个“评论“”功能
1、 克隆现有仓库 $ git clone http://git.uwscloud.com/uws/uws-data.git
2、创建并切换到feature/31124-190618分支
git checkout develop #切换到dev分支 git checkout -b feature/31124-190618 #创建并切换到feature/31124-190618分支
git push -u origin feature/31124-190618 #把创建的分支推送到远程仓库 3、开发过程中,定期把dev代码合并到feature分支,feature分支始终保持最新代码
git checkout feature/31124-190618 #切换到feature/31124-190618分支
git merge –no-ff develop #把dev代码合并大feature 4、开发完成提交
git add .
git commit -m ‘finish discuss feature’ 5、开发完成,提交测试,从develop中fork出release,并把feature合并到release,在release上测试并修改bug
git checkout develop #切换到dev分支 git checkout -b release/2.2.0-190618 #创建并切换到release/2.2.0-190618分支
git merge –no-ff feature-31124-190618 #把开发完成的feature分支合并到release/2.2.0-190618 6、直接上线测试通过的release版本,上线后把将release合并到develop和master
7、保持release本地最新 git pull release/2.2.0-190618
- release合并到develop并push到远程 git checkout develop git pull develop git merge –no-ff release/2.2.0-190618 git push
- release合并到master并push到远程 git checkout master git pull master git merge –no-ff release/2.2.0-190618 git push
9、对合并生成的新节点,打一个tag
对合并生成的新节点,做一个标签 git tag -a release/2.2.0-190618 git push –tags #push到远程
#没用可以删除release git branch -d release/2.2.0-190618 git push origin –delete release/2.2.0-190618 10、线上出问题,创建一个修补bug分支
git checkout master git checkout -b hotfix/2.2.0-190618 11、bug解决后,hotfix合并到develop和master分支
-
hotfix合并到develop并push到远程 git checkout develop git pull develop git merge –no-ff hotfix/2.2.0-190618 git push
-
hotfix合并到master并push到远程 git checkout master git pull master git merge –no-ff hotfix/2.2.0-190618 git push
打tag
git tag -a hotfix/2.2.0-190618 #在当前分支上打一个tag git tag -a hotfix/2.2.0-190618 be6fabcd #在当前分支的某个提交上打一个tag git push –tags #将当前分支及所有新打的tag推送远程仓库