Git Flow 工作流一共包含五种分支:

两个长期分支:
  • 主分支 master:用于存放对外发布的版本,任何时候在这个分支拿到的,都是稳定的分布版

  • 开发分支 develop:用于日常开发,存放最新的开发版

创建Develop分支的命令: git checkout -b develop master

将Develop分支发布到Master分支的命令:

     # 切换到Master分支

     git checkout master

     # 对Develop分支进行合并

     git merge --no-ff develop

三个临时性分支:

1 .功能(feature)分支:新功能分支,一般一个新功能对应一个分支,功能分支的名字,可以采用 feature-* 的形式命名。

创建一个功能分支:

git checkout -b feature-x develop

开发完成后,将功能分支合并到 develop 分支:

git checkout develop

                   git merge --no-ff feature-x

      删除 feature 分支:

git branch -d feature-x

2 . 预发布(release)分支:发布分支是从 Develop 分支上面分出来的,用于发布测试版本,测试完后最终需要合并进 Develop 和 Master 分支。它的命名,可以采用release-*的形式。

创建一个预发布分支:

git checkout -b release-1.2 develop

    确认没有问题后,合并到 master 分支:

git checkout master

git merge --no-ff release-1.2

        git tag -a 1.2     ( 对合并生成的新节点,做一个标签 )

      再合并到 develop 分支:

git checkout develop

            git merge --no-ff release-1.2

最后,删除预发布分支:

git branch -d release-1.2

3. 修补bug(fixbug)分支:用于修复线上版本出现的 Bug 时创建的,基于 Master 分支创建。修补结束以后,再合并进 Master 和 Develop 分支。它的命名,可以采用 fixbug-* 的形式。

创建一个修补 bug 分支:

            git checkout -b fixbug-0.1 master

      修补结束后,合并到 master 分支:

               git checkout master

            git merge --no-ff fixbug-0.1

            git tag -a   

     再合并到 develop 分支:

git checkout develop

       git merge --no-ff fixbug-0.1

    最后,删除"修补 bug 分支":

git branch -d fixbug-0.1

这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有 Maste r和 Develop。

Git-Flow 工具使用

安装方法:brew install git-flow

基本使用:

    • 初始化:git flow init

    • 开始新Feature:git flow feature start MYFEATURE

    • Publish一个Feature(也就是push到远程):git flow feature publish MYFEATURE

    • 获取Publish的Feature:git flow feature pull origin MYFEATURE

    • 完成一个Feature:git flow feature finish MYFEATURE

    • 开始一个Release:git flow release start RELEASE [BASE]

    • Publish一个Release:git flow release publish RELEASE

    • 发布Release:git flow release finish RELEASE
      别忘了git push --tags

    • 开始一个Hotfix:git flow hotfix start VERSION [BASENAME]

    • 发布一个Hotfix:git flow hotfix finish VERSION

【GIT】Git Flow最佳实践的更多相关文章

  1. [转载]理解 Git 分支管理最佳实践

    原文 理解 Git 分支管理最佳实践 Git 分支有哪些 在进行分支管理讲解之前,我们先来对分支进行一个简单的分类,并明确每一类分支的用途. 分支分类 根据生命周期区分 主分支:master,deve ...

  2. Git工作流程最佳实践总结

    Git作为一个目前非常流行的版本管理工具,深受开发者的喜爱.那么怎样才能将Git的作用发挥的更好呢?我根据实际的项目经验,归纳总结了以下Git工作流的最佳实践.这里所谓的最佳,是经过多次项目经验后,根 ...

  3. 应用Git Flow—Git团队协作最佳实践

    规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢 ...

  4. Git Flow——Git团队协作最佳实践

    规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢 ...

  5. Git Flow,Git团队协作最佳实践

    规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高, 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢 ...

  6. 高效团队的gitlab flow最佳实践

    当前git是大部分开发团队的首选版本管理工具,一个好的流程规范可以让大家有效地合作,像流水线一样有条不紊地进行团队协作. 业界包含三种flow: Git flow Github flow Gitlab ...

  7. git学习------>Git 分支管理最佳实践

    ps:本文转载于 : https://www.ibm.com/developerworks/cn/java/j-lo-git-mange/index.html Git 是目前最流行的源代码管理工具.大 ...

  8. 【转】Git代码提交最佳实践

      GIT Commit Good Practice The following document is based on experience doing code development, bug ...

  9. CI Weekly #18 | flow.ci iOS 最佳实践出炉,正式支持 Git@OSC 构建

    如大家所期待,flow.ci 现已支持开源中国的代码仓库 - 码云,可以直接构建 Git@OSC 的项目了,点击创建项目-选择代码仓库-选择码云-绑定 OSChina 账户-选择要构建项目,教程看这里 ...

随机推荐

  1. [Kernel]内核版本添加字符和内核版本'+'解决

    转自:http://blog.csdn.net/adaptiver/article/details/7225980 之前每次由于git仓库编译出来每次都带有'+', 导致都需要使用git archiv ...

  2. size_t ssize_t socklen_t

    size_t 解释一:为了增强程序的可移植性,便有了size_t,它是为了方便系统之间的移植而定义的,不同的系统上,定义size_t可能不一样. 在32位系统上 定义为 unsigned int 也就 ...

  3. Yarn NodeManager restart

    一.介绍默认Yarn NodeManager重启后会断开所有当前正在运行的container的状态,这意味着重启后需要重新启动container进程,该特性的作用就是把NM的状态临时保存到本地,重启后 ...

  4. linux下使用yum安装telnet

    参考文章: http://futeng.iteye.com/blog/2039490?utm_source=tuicool&utm_medium=referral

  5. IOS多线程之Block编程

    1 什么是block   iOS SDK 4.0開始,Apple引入了block这一特性.字面上说,block就是一个代码块.可是它的奇妙之处在于在内联(inline)运行的时候(这和C++非常像)还 ...

  6. Redis未授权访问漏洞

    一.漏洞描述和危害  Redis因配置不当可以未授权访问,被攻击者恶意利用.攻击者无需认证访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意执行flushall来清空所有数据. 攻击者可通过EVAL ...

  7. laravel bald视图控制流与子视图

    1:laravel 视图控制流的写法 假设控制器代码如下 $data = [ 0 => '张三', 1 => '李四', 2 => '王五' ]; return view('test ...

  8. 使用 jQuery UI 和 jQuery 插件构建更好的 Web 应用程序

    简介: 对于那些使用 JavaScript 和 jQuery 库从桌面应用程序转向 Web 应用程序的开发人员来说,他们还不习惯去考虑应用程序基本的外观,因为这些以前都是由操作系统来处理的.了解 jQ ...

  9. css的id选择器与thinkphp结合

    <head> <style type="text/css"> #a2{ border:1px solid blue; width:140px; height ...

  10. C++ 基本的输入输出

    C++ 基本的输入输出C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍.本章将讨论 C++ 编程中最基本和最常见的 I/O 操作. C++ 的 I/O 发生在流中,流是字节序列 ...