Git-flow简介

简单来说,git-flow 就是在 git branch git tag基础上封装出来的代码分支管理模型,把实际开发模拟成 master develop feature release hotfix support 几种场景,其中 master 对应发布上线,develop 对应开发,其他几个在不同的情况下出现。通过封装,git-flow 屏蔽了 git branch 等相对来说比较复杂生硬的命令(git branch 还是比较复杂的,尤其是在多分支情况下),简单而且规范的解决了代码分支管理问题。

我们都知道, 在 git 的分支功能相对 svn 确实方便许多,而且也非常推荐使用分支来做开发. 我的做法是每个项目都有2个分支, master 和 develop. master 分支是主分支, 保证程序有一个 稳定版本, develop 则是开发用的分支, 几乎所有的功能开发, bug 修复都在这个分支上, 完成后 再合并回 master.

但是情况并不是这么简单. 有时当我们正在开发一个功能, 但程序突然出现 bug 需要及时去修复的时候, 这时要切回 master 分支, 并基于它创建一个 hotfix 分支. 有时我们在开发一个功能时, 需要停下来去开发另一个功能. 而且所有这些问题都出现 的时候, 发布也会成为比较棘手问题.

也就是说, git branch 功能很强大,但是没有一套模型告诉我们应该怎样在开发的时候善用 这些分支。于是有人就整理出了一套比较好的方案 A successful Git branching model, 今天我们就一起来学习下这套方案.

简单来说, 他将 branch 分成2个主要分支和3个临时的辅助分支:

主要分支

  • master: 永远处在即将发布(production-ready)状态

  • develop: 最新的开发状态

辅助分支

  • feature: 开发新功能的分支, 基于 develop, 完成后 merge 回 develop

  • release: 准备要发布版本的分支, 用来修复 bug. 基于 develop, 完成后 merge 回 develop 和 master

  • hotfix: 修复 master 上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后 merge 回 master 和 develop

作者还提供了 git-flow 命令工具:


$ git flow init

接着它会问你一系列的问题!尽量使用它的默认值就好了:


No branches exist yet. Base branches must be created now.
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. 任何开发都必须从 develop 开始:


git flow feature start some_awesome_feature

完成功能开发之后:


git flow feature finish some_awesome_feature

该命令将会把feature/some_awesome_feature合并到develope分支,然后删除功能(feature)分支。

将一个 feature 分支推到远程服务器:


git flow feature publish some_awesome_feature
或者
git push origin feature/some_awesome_feature

当你的功能点都完成时(需要发布新版本了),就基于develop创建一个发布(release)分支,然后升级版本号并在最后发布日期前把Bug Fix掉吧:


$ git flow release start v0.1.0

当你在完成(finish)一个发布分支时,它会把你所作的修改合并到master分支,同时合并回develop分支,所以,你不需要担心你的master分支比develop分支更加超前。

最后一件让git-flow显得威武的事情是它处理热修复(即时的BugFix)的能力,你可以像其他分支一样地创建和完成一个热修复分支,区别是它基于master分支,因此你可以在产品出现问题时快速修复,然后通过”finish”命令把修改合并回master和develop分支。

更加详细和生动的操作,请参阅git-flow 里面更加生动的解释了怎样去操作!

转载于:https://www.cnblogs.com/jcy23401/p/4678379.html

Git指南-Git-flow开发流程相关推荐

  1. Git多人协作开发流程

    Git多人协作开发流程 一.新建仓库 1.仓库名称:total 2.路径 3.仓库介绍:这是张三.李四.王五等多人的公共仓库,他们自身的文件夹分别代表他们自己的本地代码. 二.命令行操作执行 1.gi ...

  2. 金蝶扩展报表开发指南(基本开发流程)

    一.扩展报表菜单 1-1.进入扩展报表工具,路径如下图: 1-2.打开之后,可以看到如下界面: 扩展报表的制作主要分为两部分: 一个是数据集,数据集是去查询数据库返回来的数据,比如基础资料或者单据的一 ...

  3. 【git】git实操笔记

    目录 git指南 git常用命令 配置局部用户 git credential helper 免密配置 代码提交规范 push到远程仓库 根据git log修改和抢救 git reset: 恢复到之前的 ...

  4. Git,Git Flow,GitLab使用指南

    高效利用一次蹲坑时间,看看如何使用Git Flow进行高效开发,什么才是Git提交的正确姿势,怎样使用GitLab进行Code Review: 使用Git Flow高效开发: Git提交正确姿势,Co ...

  5. 从一个前端项目实践 Git flow 的流程与参考

    Git flow 出自 A successful Git branching model,这里使用了一个前端项目配合本文稿实施了 git flow 并记录流程作出示例和参考,对 hotfix 与持续部 ...

  6. 使用git和github进行协同开发流程

    目录 前言 仓库(Repository) 源仓库 开发者仓库 分支(Branch) 永久性分支 暂时性分支 工作流(workflow) 总结 参考资料 前言 (本文假设各位已经对基本git的基本概念. ...

  7. 如何让Git适应敏捷开发流程?

    一旦涉及版本控制系统,Git实际上代表敏捷开发的水平.Git作为一款强大的开源系统,有较强的灵活性,可以按需匹配任何开发团队的工作流程.而这种分布式相比较集中式来说,自然赋予系统更好的性能特征,且允许 ...

  8. Git开发流程和工作流

    开发流程: C2版本基于C1版本开发:C3版本基于C2版本开发: C4版本基于C3版本开发:C5版本基于C3版本开发: C6 是C4和C3合并后的版本 分支3个总览: 主分支.bug分支.新功能分支 ...

  9. 开发经验漫谈 -- Git在开发流程中的运用

    女主宣言 这几期和大家分享下我自己在开发时的一些经验,这次来说说关于Git在开发流程中的运用. PS:丰富的一线技术.多元化的表现形式,尽在"HULK一线技术杂谈",点关注哦! 目 ...

最新文章

  1. C#拾遗(一、基本类型)
  2. python index函数时间复杂度_初学python之以时间复杂度去理解列表常见使用方法
  3. 加强Eclipse代码自动提示的方法
  4. [你必须知道的.NET] 第四回:后来居上:class和struct
  5. iOS自动布局进阶用法
  6. Mac中docker版本的ElasticSearch和Kibana安装及操作
  7. Ubuntu18.04 下面安装docker
  8. 维纳过程(Wiener Process)与高斯过程(Gaussian Process)
  9. 海南可以禁燃油辆,东北不可以,因为冬天温度
  10. 网吧操作系统制作与优化
  11. 图像风格迁移 CycleGAN原理
  12. php 轻量cms,【php源码】鱼跃CMS轻量CMS 版本号v1.4.6
  13. 欧洲商学院MBA(项目管理)学习笔记
  14. java旅游管理项目描述,201Java基于SpringBoot框架的旅游管理系统
  15. Java基础项目 开发团队分配管理系统
  16. 2021-金三银四跳槽-还愿
  17. python打印实心菱形图案_python输入三角形三边求面积|python打印实心菱形图案
  18. Hi-Survey Road V2.04更新说明及授权说明
  19. 计算机设置表格内框线,word表格和边框在哪里 exl表格内框线怎么设置
  20. android系统怎么刷机教程,如何刷新Android系统? Android手机通用刷机教程

热门文章

  1. 让关键词排名更稳定提升的优化技巧有哪些?
  2. 网站付费免费推广你更中意哪一个?
  3. 网站站内优化新方案,SEO运营人员值得一看
  4. 用力和应变片计算弹性模量_第4章 力学量传感器.pptx
  5. robotframework ie浏览器中click button不可用_RobotFramework自动化Selenium2Library库常用关键字...
  6. linux yum nginx 安装,Linux下 yum 安装 nginx 以及运维
  7. oracle数据库dba密码,Oracle数据库的找回DBA账户的密码
  8. .c/.cpp文件形成.exe文件的过程
  9. 大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
  10. 如何选择正确的激活函数?