从svn迁移到git了 , 补充一下git的知识和Git Flow在团队中的应用

Git主要优点有

  1. 分布式存储 , 本地仓库包含了远程仓库的所有内容 . 安全性高 , 远程仓库文件丢失了也不怕
  2. 优秀的分支模型 , 创建/合并分支非常的方便
  3. 方便快速 , 由于代码本地都有存储 , 所以从远程拉取和分支合并时都非常快捷

当分支过多时 , 如何管理这些分支呢 ? 我们团队采用了Git Flow的模式

GitFlow的常用分支

master

  • 主分支 , 产品的功能全部实现后 , 最终在master分支对外发布
  • 该分支为只读唯一分支 , 只能从其他分支(release/hotfix)合并 , 不能在此分支修改
  • 另外所有在master分支的推送应该打标签做记录,方便追溯
  • 例如release合并到master , 或hotfix合并到master

develop

  • 主开发分支 , 基于master分支克隆
  • 包含所有要发布到下一个release的代码
  • 该分支为只读唯一分支 , 只能从其他分支合并
  • feature功能分支完成 , 合并到develop(不推送)
  • develop拉取release分支 , 提测
  • release/hotfix 分支上线完毕 , 合并到develop并推送

feature

  • 功能开发分支 , 基于develop分支克隆 , 主要用于新需求新功能的开发
  • 功能开发完毕后合到develop分支(未正式上线之前不推送到远程中央仓库!!!)
  • feature分支可同时存在多个 , 用于团队中多个功能同时开发 , 属于临时分支 , 功能完成后可选删除

release

  • 测试分支 , 基于feature分支合并到develop之后  , 从develop分支克隆
  • 主要用于提交给测试人员进行功能测试 , 测试过程中发现的BUG在本分支进行修复 , 修复完成上线后合并到develop/master分支并推送(完成功能) , 打Tag
  • 属于临时分支 , 功能上线后可选删除

hotfix

  • 补丁分支 , 基于master分支克隆 , 主要用于对线上的版本进行BUG修复
  • 修复完毕后合并到develop/master分支并推送 , 打Tag
  • 属于临时分支 , 补丁修复上线后可选删除
  • 所有hotfix分支的修改会进入到下一个release

主要工作流程

1 . 初始化项目为gitflow , 默认创建master分支 , 然后从master拉取第一个develop分支
2 . 从develop拉取feature分支进行编码开发(多个开发人员拉取多个feature同时进行并行开发 , 互不影响)

3 . feature分支完成后 , 合并到develop(不推送 , feature功能完成还未提测 , 推送后会影响其他功能分支的开发)
    合并feature到develop , 可以选择删除当前feature , 也可以不删除 . 但当前feature就不可更改了 , 必须从release分支继续编码修改

4 . 从develop拉取release分支进行提测 , 提测过程中在release分支上修改BUG

5 . release分支上线后 , 合并release分支到develop/master并推送
     合并之后 , 可选删除当前release分支 , 若不删除 , 则当前release不可修改 . 线上有问题也必须从master拉取hotfix分支进行修改

6 . 上线之后若发现线上BUG , 从master拉取hotfix进行BUG修改

7 . hotfix通过测试上线后 , 合并hotfix分支到develop/master并推送
    合并之后 , 可选删除当前hostfix , 若不删除 , 则当前hotfix不可修改 , 若补丁未修复 , 需要从master拉取新的hotfix继续修改

8 . 当进行一个feature时 , 若develop分支有变动 , 如其他开发人员完成功能并上线 , 则需要将完成的功能合并到自己分支上
    即合并develop到当前feature分支
9 . 当进行一个release分支时 , 若develop分支有变动 , 如其他开发人员完成功能并上线 , 则需要将完成的功能合并到自己分支上
    即合并develop到当前release分支 (!!! 因为当前release分支通过测试后会发布到线上 , 如果不合并最新的develop分支 , 就会发生丢代码的情况)

引自大神的Git Flow 工作流程图

不喜欢命令行的同学 , 这里有完美支持Git Flow的图形化工具 - SourceTree(支持中文简体)

git-flow 工作流程简介相关推荐

  1. Git的工作流程简介

    目录 Git的工作区域 Git的基本流程 1.将工作区的代码添加到暂存区 2.将暂存区的文件提交到本地仓库 3.将暂存区的文件提交到远程仓库 Git的工作区域 Git的基本流程 图形化方式操作 命令行 ...

  2. Git Flow 工作流程

    引言 编写的目的 -通过规范化的流程,使得产品.开发与测试等各个部门更高效的协同工作. -通过规范化的流程使得产品高效稳定运行. 背景 在多组员,多项目等环境进行协同工作时,如果没有统一规范.统一流程 ...

  3. Hello Git(五)——Git分布式工作流程

    一.Git分布式工作流程简介 与集中式版本控制系统(CVCS)不同,Git的分布式特性使得开发者间的协作变得更加灵活多样.在集中式系统中,每个开发者就像是连接在集线器上的节点,彼此的工作方式大体相同. ...

  4. gitlab工作流程简介

    gitlab工作流程简介 新建项目流程 创建/导入项目 可以选择导入github.bitbucket项目,也可以新建空白项目,还可以从SVN导入项目 建议选择private等级 初始化项目 1.本地克 ...

  5. Git Flow 工作模型与使用

    一. Git Flow 工作模型的原理 无规矩不成方圆,但是规矩太多了,则感觉到束缚.我们一个人工作的时候喜欢无拘无束,想怎么干就怎么干,没有人评判,没有人检验.时间久了就会盲目自大,以为增删改查熟悉 ...

  6. Git的工作流程简单易懂

    Git的工作流程 Git的工作区域 Git的基本流程 1.将工作区的代码添加到暂存区 2.将暂存区的文件提交到本地仓库 3.将暂存区的文件提交到远程仓库 Git的工作区域 Git的基本流程 1.将工作 ...

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

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

  8. 基于git的工作流程

    本文针对的是追求极致.快速的产品响应团队的.以下的观点和内容都是围绕这个主题,暂时不涉及个人学习和团队学习. 在说工作流程之间,想说一下我们平常工作中遇到的一些困惑或者说现象 在一个团队里,同时有好多 ...

  9. Git的学习之路02 Git的工作流程、工作区、暂存区、版本库及创建版本库

    Git的一般工作流程如下: 克隆 Git 资源作为工作目录. 在克隆的资源上添加或修改文件. 如果其他人修改了,你可以更新资源. 在提交前查看修改. 提交修改. 在修改完成后,如果发现错误,可以撤回提 ...

最新文章

  1. 科研助力|计算机科学方向一对一科研项目
  2. 云服务器Linux jdk安装详解(centos8)
  3. POJ - 2559 Largest Rectangle in a Histogram(笛卡尔树,单调栈实现)
  4. MySQL集群搭建——主备模式
  5. LeetCode 958. 二叉树的完全性检验(层序遍历)
  6. 怎么把php的时区配置为本地,PHP本地时区设置
  7. html如何设置三列列宽相等,CSS分割宽度100%到3列
  8. 招聘启事的正确阅读方式您知多少?
  9. CentOS7 安装git服务器
  10. 本地数据库_干货|本地数据库调用的实现案例
  11. 人工智能与机器学习大牛们的blog
  12. 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day1--领航
  13. c语言 关键字符,c语言关键字有哪些 c语言关键字解释
  14. 2022年6月25日PMP考试通关宝典-2
  15. java毕业设计_景区旅游信息管理系统
  16. mac adb安装和使用
  17. mysql分页中offset作用_mysql中分页查询(LIMIT和OFFSET关键字讲解)一语道破天机
  18. 用java实现简单绘图
  19. LLDP协议、STP协议 笔记
  20. android apk的md5值,android 获取apk md5值

热门文章

  1. Makefile的语法
  2. OV7670使用经验总结
  3. 禁止用户对系统数据库表的SELECT权限
  4. 让您的开机时间和打开网页速度如飞一样
  5. Oracle 字符转date类型问题,未解决
  6. DynamicData for Asp.net Mvc留言本实例 中篇 新建.删除.数据验证
  7. 汇编-理解call,ret
  8. 关于xib里面的NSLayoutConstraint的multiplier修改
  9. 新项目入手-》解决方案之一
  10. [转] DataSet的的几种遍历