git的分支操作

https://blog.csdn.net/QH_JAVA/article/details/77853605

Git 开发部署流程

采用业界成熟方案 Git Flow 分支方式进行开发;一个经典的 Git 开发/部署流程包括几个环境:本地开发环境、线上测试环境、线上生产环境,分别对应git的本地工作环境、develop 分支、master 分支

无图言屌

  • 本地开发环境 : 本地仓库分支工作环境
  • 线上测试环境 : 远程 develop 分支
  • 线上生产环境 : 远程 master 分支

先在本地进行开发,做一次完整的提交 push 到 develop 分支,进行线上测试,一切正常 push 到 master 分支,一个完整的部署过程over.

Git Flow

图示

分支职责

  • master : 最为稳定功能最为完整的随时可发布的代码;
  • develop : 永远是功能最新最全的分支;
  • hotfix : 修复线上代码的 bug;
  • feature : 某个功能点正在开发阶段;

确切的说 master、develop 分支大部分情况下都会保持一致,只有在上线前的测试阶段 develop 比 master 的代码要多,一旦测试没问题,准备发布了,这时候会将 develop 合并到 master 上.

但是我们发布之后又会进行下一版本的功能开发,开发中间可能又会遇到需要紧急修复 bug ,一个功能开发完成之后突然需求变动了等情况,所以 Git Flow 除了以上 master 和 develop 两个主要分支以外,还提出了以下三个辅助分支:

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

实际开发中release分支用的比较少,对我们不太适用,所以不在开发流当中

流程

下载项目

首先安装 SSH keys : 详细教程

项目管理员会首选在远程仓库创建仓库,并建立develop分支.

作为开发人员,在本地:

git clone git@code.aliyun.com:your_org/your_project.git
git branch -a -v
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

建立 develop 分支

git checkout -b develop master
## add & commit .....
git push –set-upstream origin master
git branch -a -v
  • 1
  • 2
  • 3
  • 4

分支开发

以开发功能分支 feature/search-recommend 为例,工程师需要做以下步骤:

  1. 建立 develop 的分支 feature/search-recommend
  2. 在该分支上进行开发,完成后进行本地提交
  3. 切换到 develop 分支,pull拉取远程仓库最新版本
  4. 此时本地 develop 分支是最新版本,然后 merge 分支 feature/search-recommend
  5. 如果此时有冲突,清除后commit
  6. 把本地合并后的分支 develop push 到远程 develop
  7. 在 develop 分支环境下进行测试
  8. 一切ok,删除该功能分支
  9. 切到 master 分支,pull 然后 merge develop,收工

遵循原则&事项

  1. 每次 merge 前先 pull 远程分支在进行合并
  2. 每完成一个功能就提交一次,不要累计代码

代码

git checkout -b feature/search-recommend develop ##创建并切换到分支
git add somefile
git commit -m 'msg'
git checkout develop
git pull
git merge feature/search-recommend
git push
git checkout master
git merge devlop
git push
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

紧急修复bug

工程师们开开心心的在自己分支上进行开发,此时线上突然出现一bug,需要立即修复,那么:

  1. 在 master 分支上拉一个 hotfix 分支 hotfix/0.0.1
  2. 修复后 merge 回 master 分支
  3. 再 merge 回 develop 分支
  4. 删除该分支
  5. 应始终保证 master 和 develop 上都修复了该bug

命名规范

分支命名

除了主要分支的名字是固定的之外,派生分支是需要自己命名的,采用如下形式:

  • feature : 按照功能点(而不是需求)命名 feature/ ;如 *feature/weixin_recharge
  • hotfix : 通过平台生成的问题编号来命名;如 hotfix/#1

git开发部署流程的更多相关文章

  1. Kent Beck揭秘Facebook开发部署流程

    http://www.infoq.com/cn/news/2013/10/facebook-development-deployment Facebook是世界上最大的社交网站,有超过10亿用户每月至 ...

  2. 使用git开发的流程

    1.git常用的主干,分支命令 查看分支 git branch 或者 git branch -v A) 创建分支 git branch Dev_samples_V1.0.0 B) 切换分支 git c ...

  3. FastAdmin Git 开发更新流程

    更加简洁的流程 FastAdmin 使用 Git 更新的新用法 https://www.cnblogs.com/F4NNIU/p/9120365.html

  4. GIT入门笔记(20)- git 开发提交代码过程梳理

    git开发提交流程新项目开发,可以直接往master上提交老项目维护,可以在分支上修改提交,多次add和commit之后,也可以用pull合并主干和本地master,解决冲突后再push 1.检出代码 ...

  5. 开发与测试整体过程中的Git分支merge流程

    开发与测试整体过程中的Git分支merge流程 Git分支merge之开发流程 首先在Gitlab上有个仓库存储着原始的项目代码,其中包含一个叫master的分支.然后可能按功能进行分配,由不同的开发 ...

  6. 关于开发环境 git 重新部署

    apps  开发机器 多次因为升级出现无法登陆 下面就重新部署 流程做笔记 1   备份 根目录下的 那一堆shell 和 Cache/data 下的系统配置 2  shell : su www   ...

  7. 正确的git开发流程

    正确的git开发流程 第一步 在github中创建一个新的仓库,这时候项目是空的,而且只有一个master分支 第二步 第一个开发人员进来了,他在本地创建一个develop分支,并且提交到远程 git ...

  8. FastAdmin 插件的 Git 开发流程(简明)

    FastAdmin 插件的 Git 开发流程(简明) cms zip 安装 包安装 删除 addons 里的 cms 使用 mklink 软链接到 cms 插件 Git 仓库 修改 cms 插件 gi ...

  9. Ubuntu 18.04开发环境部署流程

    部署流程 安装系统 安装Eclipse和jre 配置系统 安装辅助工具 安装系统 用安装盘安装即可. 一般boot 1G,swap按内存大小,home 20G,根剩余. 安装Eclipse和jre 解 ...

随机推荐

  1. 20155338《网络对抗》Exp3 免杀原理与实践

    20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.v ...

  2. STM32一键下载电路设计原理

    先放原理图(补充:图中的BOOT0通过10K的电阻接到地),再解释为什么这么设计: STM32启动方式:BOOT0和 BOOT1用于设置 STM32的启动方式 ,见下表: BOOT0=1,BOOT1= ...

  3. 如何完全卸载VS2010(亲自体验过) (转)

    1.首先用360卸载,当卸载完成后,提示有残余的话,就强力清除 2,接着,下载IobitUninstaller工具 3.按照下面进行卸载 1.Microsoft .NET Framework 4 框架 ...

  4. 封装之property,多态,鸭子类型,classmethod与staticmethod

    一.封装之Property prooerty是一种特殊的属性,访问时他会执行一段功能(函数)然后返回 '''BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属 ...

  5. nodejs 监控代码变动实现ftp上传

    被动模式下 //https://www.npmjs.com/package/watch //文件同步功能 var watch = require('watch'); var path = requir ...

  6. Unity协程Coroutine使用总结和一些坑

    原文摘自 Unity协程Coroutine使用总结和一些坑 MonoBehavior关于协程提供了下面几个接口: 可以使用函数或者函数名字符串来启动一个协程,同时可以用函数,函数名字符串,和Corou ...

  7. 容器flappybird游戏——图文操作指引贴

    第一步:打开华为云容器引擎产品首页,点击免费体验馆   第二步:进入免费体验馆,点击体验按钮,获得3天免费集群     第三步:创建免费集群完成后,进入产品console页,如图所示:   第四步:如 ...

  8. CEPH FILESYSTEM

    参考文档: CEPH FILESYSTEM:http://docs.ceph.com/docs/master/cephfs/ CephFS best practices:http://docs.cep ...

  9. “Linux内核分析”实验一报告

    张文俊 + 原创作品转载请注明出处 + <Linux 内核分析> MOOC 课程 实验要求: 1.总结部分要求阐明自己对“计算机是如何工作的”理解: 2.博客中需要使用实验截图: 实验内容 ...

  10. Beta 讨论分析——持续更新ing

    wonderland Beta 讨论分析 标签(空格分隔): 软工实践 wonderland 主要工作: info信息: 1.关联账号界面:hbb 2.标签检索界面:hbb 3.近期活跃度(cf.hd ...