git flow工作流

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、gitflow工作流 1.1 master 分支和 develop分支 在Git Flow 中,这两个分支至关...
    leonardni阅读 8,522评论 1 7
  • 1 Git Flow介绍 我们都知道, 在 git 的分支功能相对 svn 确实方便许多,而且也非常推荐使用分支来...
    七寸知架构阅读 7,940评论 20 68
  • 我最近呀,看书多了一些心得,有不少想法,盘旋在脑袋中,堆积在肚子里,散发在四肢五感之间,它们呐,在名为我的载体中,...
    红青白季阅读 265评论 0 0
  • 如同纸鸢,思绪被某种引力牵引,并且缓缓漂进此时此刻的心情。至此,执笔言命 墨色天碧色雨,有粗鄙有闪烁。不诗意,甚至...
    一枝白鸟阅读 403评论 0 4
  • 其实这是一个伪命题,我并不能论证每一个人都爱三井寿,毕竟就连我自己,也是一个全员本命的博爱派。 不过在灌高的世界里...
    岁与华阅读 1,387评论 0 2