Git-flow 学习总结
2017-03-07 11:09
232 查看
git 作为现在最为主流的版本管理工具,优点有很多,其中最为显著的一点就是分支管理。
作为一款优秀的版本管理工具,我在日常开发中也在使用,固定分支有两个,分别是
基于上面的问题,上网搜索了 git 的工作流,其中讲的最多的就是
临时性分支:
推送
推送到远端:
各种
…….
加上
推送到远端:
删除
各种测试,各种蹂躏,各种 fix bugs ……
修复完成之后合并到
经常切换分支,容易进行误操作(在不对应的分支上进行提交,细心能够解决)。
会出现如下的一系列问题,都是设置各个分支前缀,直接回车默认值:
初始化完成之后,当前分支会变成
推送分支到远端:
修复完成,输入如下命令,会合分别合并到
2,Git分支管理策略
3,A successful Git branching model
4,gitflow
5,使用GIT FLOW管理开发流程
6,git-flow 的工作流程
作为一款优秀的版本管理工具,我在日常开发中也在使用,固定分支有两个,分别是
master和
develop,日常开发和测试都是针对
develop进行,这造成一个问题就是,每当上线版本发现bug的时候,
develop分支已经有下个版本正在开发的代码,从 tag 创建出来的分支合并到
master后,难以合并到
develop。
基于上面的问题,上网搜索了 git 的工作流,其中讲的最多的就是
git flow,下面就将
git flow的学习结果总结如下。
发图镇楼
Branch
主分支:master发布到线上的代码应该和这个分支一致。
develop日常开发分支,其他分支基本围绕这个分支。
临时性分支:
feature/*新功能研发分支,从
develop创建,研发完成,合并到
develop。
release/*预发布分支,从
develop创建,进行测试,并修复 bugs。最终会合并到
develop和
master分支。
hotfix/*紧急修复分支,从
master创建,最终会合并到
develop和
master分支。
Tag
tag 永远只在master分支创建。
release/*分支合并到
master之后,推送
master到远端,然后创建
tag, 推送
tag到远端。
hotfix/*分支合并到
master之后,推送
master到远端,然后创建
tag, 推送
tag到远端。
操作流
我们根据上面的理论,进行一次完整操作。创建 develop 分支
新仓库默认是master分支,
master分支只作为发布版本,日常开发都要基于开发分支
develop。从
master分支创建
develop分支:
git checkout -b develop master
推送
develop分支,到远端:
git push origin develop
v0.1.0 开始开发
现在来开发第一个版本v0.1.0,首先从
develop创建分支
feature/v0.1.0:
git checkout -b feature/v0.1.0 develop
推送到远端:
git push origin feature/v0.1.0
各种
v0.1.0版本功能代码的提交…
…….
v0.1.0 完成开发
开发完成后,将feature/v0.1.0合并到
develop分支:
git checkout develop git merge --no-ff feature/v0.1.0
--no-ff参数的意思是不进行快速合并,
merge命令默认会进行“快进式合并(fast-farward merge)”,直接将
develop指向
feature/v0.1.0,这里使用阮一峰在Git分支管理策略中的图片。
加上
--no-ff参数后,合并的时候会生成一个新节点。可以保证版本演进的清晰。
推送到远端:
git push origin develop
删除
feature/v0.1.0:
git branch -b feature/v0.1.0
预发布
开发完成之后,要进行测试,fix bugs。创建预发布分支:git checkout -b release/v0.1.0 develop git push origin release/v0.1.0
各种测试,各种蹂躏,各种 fix bugs ……
发布版本
经过测试和修复,终于要上线了,合并release/v0.1.0到
master和
develop:
#合并到master git checkout master git merge --no-ff release/v0.1.0 git push origin master #打上tag git tag -a v0.1.0 -m "publish v0.1.0" git push origin v0.1.0 #合并到develop git checkout develop git merge --no-ff release/v0.1.0 git push origin develop #删除 release/v0.1.0 git branch -d release/v0.1.0
出 bug 了
代码上线之后,出 bug 是谁都不愿意看到的,但是难免会出的嘛。下面我们进行修复,下面我们从master创建
hotfix/v0.1.0分支,进行修复工作:
git checkout -b hotfix/v0.1.0 master git push origin hotfix/v0.1.0
修复完成之后合并到
master和
develop分支:
#合并到master git checkout master git merge --no-ff hotfix/v0.1.0 git push origin master #打上tag git tag -a v0.1.1 -m "publish v0.1.1" git push origin v0.1.1 #合并到develop git checkout develop git merge --no-ff hotfix/v0.1.0 git push origin develop #删除 hotfix/v0.1.0 git branch -d hotfix/v0.1.0
利与弊
各个分支,各司其职,清晰可控。经常切换分支,容易进行误操作(在不对应的分支上进行提交,细心能够解决)。
Git-flow 工具
由git flow提出者 Vincent Driessen开发的
git flow工具。
Install
Homebrew
brew install git-flow
MacPorts
port install git-flow
wget
wget --no-check-certificate -q -O - https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | sudo bash
cURL
curl -L -O https://raw.github.com/nvie/gitflow/develop/contrib/gitflow-installer.sh sudo bash gitflow-installer.sh
操作流
在项目根目录初始化git flow:
git flow init
会出现如下的一系列问题,都是设置各个分支前缀,直接回车默认值:
Which branch should be used for bringing forth production releases? - master Branch name for production releases: [master] Branch name for "next release" development: [develop] How to name your supporting branch prefixes? Feature branches? [feature/] Release branches? [release/] Hotfix branches? [hotfix/] Support branches? [support/] Version tag prefix? []
初始化完成之后,当前分支会变成
develop分支。
v0.1.0 开始开发
输入如下命令,会从develop分支创建出
feature/v0.1.0分支。
git flow feature start v0.1.0
推送分支到远端:
git flow feature publish v0.1.0 #或者 git push origin feature/v0.1.0
v0.1.0 完成开发
输入如下命令,会把feature/v0.1.0分支合并到
develop分支,并删除
feature/v0.1.0分支。
git flow feature finish v0.1.0
预发布
输入如下命令,会从develop分支创建出
release/v0.1.0分支:
git flow release start v0.1.0 #推送到远端 git flow release publish v0.1.0 #或者 git push origin release/v0.1.0
发布版本
输入如下命令,会把release/v0.1.0分支合并到
develop分支和
master分支,并删除
release/v0.1.0分支。
git flow release finish v0.1.0
出 bug 了
输入如下命令,会从master创建
hotfix/v0.1.1分支。
git flow hotfix start v0.1.1
修复完成,输入如下命令,会合分别合并到
master和
develop:
git flow hotfix finish v0.1.1
抄袭文献
1,Git 工作流程2,Git分支管理策略
3,A successful Git branching model
4,gitflow
5,使用GIT FLOW管理开发流程
6,git-flow 的工作流程
相关文章推荐
- 今天初步学习了一下Git版本控制,总结一下,后面加下用Git下载android源代码
- Git、Gitflow、Github学习心得
- Git学习笔记总结和注意事项
- Git学习总结
- git学习总结
- git学习总结(一)基础以及配置
- Git学习总结
- git 学习总结 - 基于实际项目的经验
- Git学习系列——总结
- Git学习总结
- Git命令学习总结(-)
- git、gitflow、github学习心得
- Git学习总结
- git学习总结(二)本地git仓库的相关操作
- git学习总结
- 今天初步学习了一下Git版本控制,总结一下,后面加下用Git下载android源代码
- git命令 学习总结
- [更新中]【fit-flow使用总结】djang开发中git flow使用总结
- Git学习研究小总结
- Git命令学习总结(-)