简介
git-flow是一个git扩展集,也就是说git-flow命令的本质还是git命令。以下内容出自:git-flow 备忘清单
基础建议
- git-flow提供了极其出色的命令帮助以及输出提示;
- Sourcetree 是一个极其出色的git图形化工具,已经提供了git-flow支持是一个极其出色的git图形化工具,已经提供了git-flow支持;
- git-flow是一个基于归并的解决方案,它并没有提供重置(release)特性分支的能力。
安装
brew install git-flow-avh
开始
初始化
进入项目目录进行初始化,一直按回车
git flow init
这个命令会做了两件事:
- 在当前项目下创建一个基于master的develop分支;
- 切换到develop分支。
新功能开发
1) 初始化
git flow feature start 功能名称
这个命令做了以下几件事:
- 创建一个基于develop的‘feature/功能名字’分支;
- 切换到‘feature/功能名称’分支。
2) 完成新功能开发
git flow feature finish 功能名称
这个命令做了以下几件事:
- 合并‘feature/功能名称’分支到develop分支上;
- 删除‘feature/功能名称’分支;
- 切换回develop分支。
3) 如果多人合作开发一个新功能,你需要把代码push到服务器上给其他成员使用:
git flow feature publish 功能名称
这个命令做了:
- 把‘feature/功能名称’分支push到服务器
4)同理,多人开发一个新功能,你需要获取其他成员的代码,有两种情况:
本地没有'feature/功能名称'分支
git flow feature track 功能名称
本地已经有了'feature/功能名称'分支
git flow feature pull origin 功能名称
这两个命令实际上都是:
- 拉取服务器上的'feature/功能名称'分支到本地:
5)完成了新功能开发:
git flow feature finish 功能名称
该命令做了以下几件事:
- 合并‘feature/功能名称’分支到develop分支;
- 删除‘feature/功能名称’本地分支;
- 如果远程仓库有'feature/功能名称'分支,删除;
- 切换回develop分支。
发布版本
当功能点都完成时(需要发布新版本了),就基于develop创建一个发布(release)分支,然后升级版本号并在最后发布日期前把Bug Fix掉吧。
这里的“版本号”对应着上线的版本号!
1)创建一个release版本
git flow release start 版本号
该命令做的事情:
- 创建一个基于develop分支的‘release/版本号’分支;
- 切换到‘release/版本号’分支。
2)如果多人共同修改这个版本的bug,你需要push代码到服务器供其他成员使用:
git flow release publish 版本号
内部做的事情和“新功能开发 -> git flow feature publish”命令一样。
3)获取服务器‘release/版本号’的代码
本地没有'release/版本号'分支
git flow release track 版本号
本地已经有了'release/版本号'分支
git flow release pull origin 版本号
4)完成release版本
git flow release finish 版本号
做了以下几件事:
- 拉取服务器代码,以确保本地代码为最新;
- release内容和合并到master和develop分支上;
- 代码在合并到master和develop分支的同时会打上“版本号”的tag;
- 删除“release/版本号”分支,并切回到develop分支。
紧急修复bug
已发布的版本出现紧急bug需要修复,使用hotfix,该分支基于master:
1)初始化
git flow hotfix start 版本号
做了以下几件事:
- 创建基于master的“hotfix/版本号”分支;
- 切换到“hotfix/版本号”分支。
2)完成紧急修复
git flow hotfix finish 版本号
内部原理和‘git flow release finish’一样
看图说话
