git-flow是一个关于git的工具,它能更好的规范你当前项目的流程,让你的工作流程变的更加合理有效,简单说,git-flow就是聪明有效地把标准的 Git命令用脚本组合了起来并且不会影响你原来的git命令。
安装(windows环境):
找到自己git的安装目录:
忘记的话可以在cmd上面输入
where git
得到git安装目录
1、下载getopt.exe和libintl3.dll文件
把上述两个文件下载到git安装目录下面的bin目录中,下载地址
百度云盘
(复制链接打开:https://pan.baidu.com/s/1hBJ_Lrn-VrXF1vhVvY5_gQ)
2、clone git-flow到本地
git安装目录后执行以下命令
git clone git://github.com/nvie/gitflow.git
gitflow.png
3、安装
进入gitflow/contrib目录后执行下面操作
msysgit-install.cmd "D:\Program Files\Git" //后面跟相应你自己git安装路径
4、检测安装是否成功
git flow
gitflow1.png
实际开发中使用git-flow
git-flow可以在你当前使用git的项目中使用,进入你所在的项目
1、初始化git-flow
git flow init
初始化后git-flow会在仓库中预设两个分支
- master:产线上的分支,存储官方发布历史,在实际开发中不直接提交改动到 master 分支。
-
develop:开发新功能的基础分支,另外,该分支也汇集所有已经完成的功能,并等待被整合到 master 分支中。
1.png
这两个分支被称作为 长期分支。它们会存活在项目的整个生命周期中。
2、新功能开发(git flow feature)
2.png开始
一个新功能开发时,我们会基于最新的远程develop分支新建一个功能分支
没有git-flow
git checkout develop
git pull
git checkout -b <branch-name>
存在git-flow时
git flow feature start <branch-name>
结束
新功能开发完,我们就要把功能合并到develop分支,你的本地功能分支的生命周期也就结束了,即删除功能分支
没有git-flow
git checkout develop
git merge <branch-name>
git branch -D <branch-name>
存在git-flow时
git flow feature finish <branch-name>
3、管理 releases(git flow releases)
当develop分支包括所有新的功能和必要的修复后并且已经被彻底的测试过了。并且可以等待正式发布的时候就可以创建一个release分支,再次之后不能添加任何新功能,只有bug修复
3.png
开始
这个spring的所有新功能已经开发完成,且测试通过,我们将要发布的时候切一个release分支
没有git-flow
git checkout develop
git checkout -b release/0.1.0 //后面跟版本号
存在git-flow时
git flow release start 0.1.0
请注意,release 分支是使用版本号命名的。这是一个明智的选择,这个命名方案还有一个很好的附带功能,那就是当我们完成了release 后,git-flow 会适当地自动去标记那些 release 提交
完成release
没有git-flow
git checkout develop
git pull
git merge release/0.1.0
git checkout master
git merge release/0.1.0
git branch -D release/0.1.0
存在git-flow时
git flow release finish 0.1.0
这个命令会完成如下一系列的操作
- git-flow 会拉取远程仓库,以确保目前是最新的版本。
- release 的内容会被合并到 “master” 和 “develop” 两个分支中去,这样不仅产品代码为最新的版本,而且新的功能分支也将基于最新代码。
- 为便于识别和做历史参考,release 提交会被标记上这个 release 的名字(在我们的例子里是 “1.1.5”)。
- 清理操作,版本分支会被删除,并且回到 “develop”。
4、hotfix
在版本发布之后我们偶尔可能会发现一些小的bug,在这个时候我们就需要紧急修改上线的版本我们称这个为hotfix。该分支主要是基于master分支进行修改
4.png
开始
修改线上的紧急bug,基于master分支切换hotfix分支
没有git-flow
git checkout master
git checkout -b <hotfix_branch>
存在git-flow时
git flow hotfix start <hotfix_branch>
完成 Hotfixes
完成bug修复后,要把修复好的代码复制到master和develop,以便下次代码的完整
没有git-flow
git checkout develop
git pull
git merge <hotfix_branch>
git checkout master
git merge <hotfix_branch>
git branch -D <hotfix_branch>
存在git-flow时
git flow hotfix finish 0.1.0
git-flow更加详细的文档:https://www.cnblogs.com/hqbhonker/p/5092300.html
网友评论