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

Git主要优点有
分布式存储 , 本地仓库包含了远程仓库的所有内容 . 安全性高 , 远程仓库文件丢失了也不怕
优秀的分支模型 , 创建/合并分支非常的方便
方便快速 , 由于代码本地都有存储 , 所以从远程拉取和分支合并时都非常快捷
当分支过多时 , 如何管理这些分支呢 ? 我们团队采用了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(支持中文简体)


原文:https://blog.csdn.net/xingbaozhen1210/article/details/81386269

git flow使用相关推荐

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

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

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

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

  3. 如何正确使用Git Flow 流程

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  4. Git学习笔记—Git Flow

    在Java程序开发中的定制开发规范,想要把项目正规高效的跑起来.引入 Git 版本控制,Git-Flow 便成为了首选. 今天动力节点Java学院来带你了解一下. 一.为什么使用 git-flow 当 ...

  5. SAP Spartacus 的 git flow 和发布流程

    Git Flow and Release Process Library Version Compatibility Spartacus 项目由一组库组成. 为了更容易知道哪个版本的库与另一个版本兼容 ...

  6. Git Flow分支策略与Azure DevOps相关功能简介

    想了很久,还是写这么一篇文章来总结一下有关分支策略和DevOps的一些内容吧.其实,DevOps相关的内容并不是我的工作范围,不过对于敏捷开发.DevOps.项目管理等等这一系列的与开发过程相关的内容 ...

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

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

  8. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  9. 为什么我从 Git Flow 开发模式切换到了 Trunk Based 开发模式?

    我已经使用 Git Flow 构建我的 Git 分支有几年了.但是,我遇到了 Git Flow 的一些问题,其中大部分来自长期存在的分支.解决这些问题的方案就是 Trunk Based Develop ...

  10. git flow 使用步骤

    Mac安装git-flow:brew install git-flow 克隆新代码:git clone git@gitlab.xxx.cn:abc/test.git 切换到远程的develop分支(很 ...

最新文章

  1. Python实现“鸟脸识别”,看看什么鸟最贪吃
  2. 项目中基于Rest的Wcf服务发布以及iBatisNet框架的使用(下)
  3. 解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题
  4. signature=eddfa127dafaf9a7c1ea87598961fbc9,Slingerende vrachtwagens verleden tijd?
  5. 武汉大学计算机学院学生寝,多彩青春一路同行——记武大计算机学院计科2班...
  6. AngularJS之ng-class(十一)
  7. 【BUG记录】在onCreate()方法handler调用方法导致程序闪退
  8. 【H.264/AVC视频编解码技术】第六章【指数哥伦布编码】
  9. Django,Ajax,Vue实现文章评论功能
  10. MaxCompute 费用暴涨之新增SQL分区裁剪失败
  11. 汉诺塔VII(递推,模拟)
  12. (76)译码器与编码器(三八译码器)
  13. VMware vSAN 的内部版本号和版本 (2150753)
  14. k2p—b1版本刷固件遇到的问题
  15. 吴昊品游戏核心算法 Round 5 —— 五子棋(无禁手)后台的判胜负AI(bfs+queue容器)(HDOJ 2699)...
  16. 墨墨背单词mysql_GitHub - FunStuff/WeChat-applets: 微信小程序小鸡单词
  17. 木马病毒的传播方式这么多,在你的日常冲浪中,木马病毒就进行了传播!
  18. 标准盒子模型和怪异盒子模型
  19. 数字时代下,工厂的智能加工、检测与控制
  20. 数据库三级填空题(应用题)常考总结

热门文章

  1. [转]虚函数实现原理
  2. shell :将标准输出及标准错误输出写到指定文件
  3. nginx 逻辑运算
  4. JAVA 反射机制 获得 private 变量
  5. Ubuntu部署KVM服务器
  6. 如何禁止开机时进入安全模式
  7. python+requests+pytest_Python+Requests+Pytest 在window下的安装(附pip升级过程遇到的问题)...
  8. VPP 命令总结(持续更新)
  9. Systrace分析app启动分析
  10. linux 调度总结