0 GitFlow 有Vincenr Driessen 提出的git 软件开发版本管理的流程标准。
博文:https://nvie.com/posts/a-successful-git-branching-model/
1 主要分支介绍
Git Flow
maseter分支
主分支产品功能全部实现后,在mster分支对外发布。
develop 分支
开发分支,基于master分支克隆,产品的编码在此分支进行。
release 分支
- 测试分支,基于develop分支克隆。
- 产品功能编码featuren分支提交合并完成后,同步到本分支测试,测试过程的BUG在本分支修复,修复完成打Tasg合并到develop分支。
- 属于临时分支,功能上线后可删除分支。
bugfix 分支
- bug 修复分支,基于master分支或者发布的tasg 克隆,用于修复对外发布的分支(线上版本)。
- 修复BUG完成 打Tag后合并到 develop/master 分支。
- 属于临时分支,修改完BUG后可以删除分支。
feature 分支
- 功能开发分支,基于develop分支克隆,用于新功能的开发。
- 功能开发完成后合并到develop分支。
- 可以存在多个,属于临时分支,功能完成后可删除。
2 使用CitFlow有如下几点优势:
- 并行开发: 每个新功能都建立新的feature分支,与一家完成的功能隔离。新功能完成开发后,对应的feature分支合并到develop分支。本地开发多个新功能,可以创建多个feature分支,切换开发。
- 协作开发: 每个feature分支改动的代码只用于某个功能。
- 支持紧急修复:hotfix分支,从某个已经发布的tag 创建的紧急修复,这会紧急修复值影响已经发布的tag,不会与新开发feature冲突。
3 开发 示例
1 从远程仓库克隆代码到本地
git clone https://liaowei1992.visualstudio.com/IdentityServer.Samples/_git/IdentityServer.Samples
2 基于master 分支 创建develop
//切换master 分支
git checkout master
// 基于master 创建develop分支
git checkout -b develop
3 feature 开发新功能
1 从develop创建feature 分支
2 在feature分支下编写代码
3 合并feature分支到develop分支
4 推送到远程仓库 develop
git checkout -b feature1
git add .
git commit -n "功能开发完成"
git tag -m "v1.2版本" v1.2
//执行拉取操作
git pull
// 解决代码冲突 推送代码到远程仓库
git push orign develop