Gitflow 为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。分别有历史分支、功能分支、发布分支和维护分支。
历史分支
使用两个分支来记录项目的历史。
master分支记录了正式发布的历史,而develop分支作为功能的集成分支。因此,master分支的每次提交都应分配一个版本号。
功能分支
功能分支是从develop中checkout出来的新分支,每个功能对应一个分支。
首先保证当前项目具有develop开发分支。
查看当前的本地分支:
$ git branch
b
bug
* develop
master
release
查看当前的全部分支:
$ git branch -a
b
bug
* develop
master
release
remotes/origin/develop
remotes/origin/master
remotes/origin/release
带有远程字样“remotes”就是远程的分支
创建分支的方式:
$ git checkout -b 'develop'
Switched to a new branch 'develop'
1.假设开发a功能:
git checkout -b feature-a develop
2.当新功能完成时,合并回develop分支。
git checkout develop
git merge --no-ff feature-a
git push
git branch -d feature-a
发布分支
1.当develop分支开发到需要发布时,从develop分支拉出一个发布分支,命名为release-或release/。
git checkout -b release-0.1 develop
2.该分支用于发布循环,只做bug修复、文档生成等面向发布的任务。新功能不再添加到这个分支上。
3.一旦发布完成,把发布分支merge到master分支上。
git checkout master
git merge --no-ff release-0.1
git push
4.打tag记录版本号,方便跟踪每次发布。
git tag -a 0.1 -m "release 0.1 publish" master
git push --tags
5.把这些从新建发布分支以来做的修改merge到develop分支。
git checkout develop
git merge --no-ff release-0.1
git push
6.最后删除发布分支
git branch -d release-0.1
维护分支/热修复
当线上版本出现bug时,就需要用到维护分支,它用于快速给产品发布版本打补丁。
1.从master分支拉一个维护分支(这是唯一从master分支拉出来的分支)。
git checkout -b hotfix master
2.修复完成后,马上合并回master和develop。
扫描二维码关注公众号,回复:
10596116 查看本文章
git checkout master
git merge --no-ff hotfix
git push
git checkout develop
git merge --no-ff hotfix
git push
git branch -d hotfix
3.master用新版本号打tag。
git tag -a 0.2 -m "release 0.2 publish" master
git push --tags