git开发部署流程
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 为例,工程师需要做以下步骤:
- 建立 develop 的分支 feature/search-recommend
- 在该分支上进行开发,完成后进行本地提交
- 切换到 develop 分支,pull拉取远程仓库最新版本
- 此时本地 develop 分支是最新版本,然后 merge 分支 feature/search-recommend
- 如果此时有冲突,清除后commit
- 把本地合并后的分支 develop push 到远程 develop
- 在 develop 分支环境下进行测试
- 一切ok,删除该功能分支
- 切到 master 分支,pull 然后 merge develop,收工
遵循原则&事项
- 每次 merge 前先 pull 远程分支在进行合并
- 每完成一个功能就提交一次,不要累计代码
代码
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,需要立即修复,那么:
- 在 master 分支上拉一个 hotfix 分支 hotfix/0.0.1
- 修复后 merge 回 master 分支
- 再 merge 回 develop 分支
- 删除该分支
- 应始终保证 master 和 develop 上都修复了该bug
命名规范
分支命名
除了主要分支的名字是固定的之外,派生分支是需要自己命名的,采用如下形式:
- feature : 按照功能点(而不是需求)命名 feature/ ;如 *feature/weixin_recharge
- hotfix : 通过平台生成的问题编号来命名;如 hotfix/#1
git开发部署流程的更多相关文章
- Kent Beck揭秘Facebook开发部署流程
http://www.infoq.com/cn/news/2013/10/facebook-development-deployment Facebook是世界上最大的社交网站,有超过10亿用户每月至 ...
- 使用git开发的流程
1.git常用的主干,分支命令 查看分支 git branch 或者 git branch -v A) 创建分支 git branch Dev_samples_V1.0.0 B) 切换分支 git c ...
- FastAdmin Git 开发更新流程
更加简洁的流程 FastAdmin 使用 Git 更新的新用法 https://www.cnblogs.com/F4NNIU/p/9120365.html
- GIT入门笔记(20)- git 开发提交代码过程梳理
git开发提交流程新项目开发,可以直接往master上提交老项目维护,可以在分支上修改提交,多次add和commit之后,也可以用pull合并主干和本地master,解决冲突后再push 1.检出代码 ...
- 开发与测试整体过程中的Git分支merge流程
开发与测试整体过程中的Git分支merge流程 Git分支merge之开发流程 首先在Gitlab上有个仓库存储着原始的项目代码,其中包含一个叫master的分支.然后可能按功能进行分配,由不同的开发 ...
- 关于开发环境 git 重新部署
apps 开发机器 多次因为升级出现无法登陆 下面就重新部署 流程做笔记 1 备份 根目录下的 那一堆shell 和 Cache/data 下的系统配置 2 shell : su www ...
- 正确的git开发流程
正确的git开发流程 第一步 在github中创建一个新的仓库,这时候项目是空的,而且只有一个master分支 第二步 第一个开发人员进来了,他在本地创建一个develop分支,并且提交到远程 git ...
- FastAdmin 插件的 Git 开发流程(简明)
FastAdmin 插件的 Git 开发流程(简明) cms zip 安装 包安装 删除 addons 里的 cms 使用 mklink 软链接到 cms 插件 Git 仓库 修改 cms 插件 gi ...
- Ubuntu 18.04开发环境部署流程
部署流程 安装系统 安装Eclipse和jre 配置系统 安装辅助工具 安装系统 用安装盘安装即可. 一般boot 1G,swap按内存大小,home 20G,根剩余. 安装Eclipse和jre 解 ...
随机推荐
- WPF编程,使用WindowChrome实现自定义窗口功能的一种方法。
原文:WPF编程,使用WindowChrome实现自定义窗口功能的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/arti ...
- Python基础(list和tuple)可变集合和‘不可变’集合
list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...
- 【php增删改查实例】第一节 - PHP开发环境配置
最近需要使用PHP,于是把平时的积累整理一下,就有了这个教程. 首先是环境配置: 1.操作系统:windos7 2.后台:PHP 3.前台:Html + js + css 4.数据库:MYSQL 5. ...
- 使用 Vue.js 2.0+ Vue-resource 模仿百度搜索框
使用 Vue.js 2.0 模仿百度搜索框 <!DOCTYPE html> <html> <head> <meta charset="utf-8&q ...
- Spring Boot (十三): Spring Boot 小技巧
一些 Spring Boot 小技巧.小知识点 初始化数据 我们在做测试的时候经常需要初始化导入一些数据,如何来处理呢?会有两种选择,一种是使用 Jpa,另外一种是 Spring JDBC .两种方式 ...
- jenkis +sonarqube 对后端代码静态扫描,钉钉群通知执行结果(记录)
代码提交,触发后端sonar测试,测试完成,jenkins触发依赖任务,执行python脚本,达到预期,调用上线任务模块,进行上线,达不到预期,钉钉群通知. 牵涉到配置: 1.配置sonar测试任务 ...
- (转)OWASP ZAP下载、安装、使用(详解)教程
OWASP Zed攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者*积极维护.它可以帮助您在开发和测试应用程序时自动查找Web应用程序中的安全漏洞. 也可以说:ZAP是一个 ...
- 吴恩达《AI For Everyone》_练习英语翻译_待更新
AI For Everyone https://www.coursera.org/learn/ai-for-everyone 讲师: Andrew Ng (吴恩达) CEO/Founder Landi ...
- kafka学习总结之集群部署和zookeeper
1. 集群部署 kafka集群的瓶颈主要在网络和磁盘上:kafka依赖于zookeeper,zookeeper集群的节点采用奇数个,3个节点允许一个节点失败,5个节点允许2个节点失败. 图 1 ka ...
- 2-Nineteenth Scrum Meeting-20151219
任务安排 成员 今日完成 明日任务 闫昊 写完学习进度记录的数据库操作 请假(数据库) 唐彬 和服务器老师交流讨论区后台接口 请假(数据库) 史烨轩 尝试使用downloadmanager对noti ...