git 分支管理方案
现有一般的公司项目均使用git(大多数是gitLab)管理。
开发组
我们的项目都要建立在 开发组的名下 (git.xxcompany.com/xxgroup),除需要公司内部开源的项目,都必须设置为 私有(private) ,只对团队内部开源。
ssh key
使用前建议大家在本地用自己的公司邮箱配置ssh key,并讲ssh key 添加到git系统的个人页,(方法如下: https://segmentfault.com/a/1190000002645623)
虽然有一些公司的git 仓库不使用ssh也能正常的clone,但考虑到后续的一些内部工具的权限校验,建议配置ssh key
分支管理
因为前端开发不走终端的发版模式,可以随时上线,因此分支管理显得十分重要。
默认主线为master (永远与线上代码一致),我们采用现在大多数公司使用的feature开发模式:
1、接到需求后以线上(master)为基准,创建feature 分支命名规则: feature_xxx。
以xxx需求为例
$ git checkout master
$ git checkout -b feature_xxx
2、开发阶段,完成需求
3、提测前,拿到最新的master分支合并到feature_xxx,将feature_xxx的代码发到测试环境。
$ git checkout master
$ git pull
$ git checkout feature_xxx
$ git merge master
4、每一轮提测包括集成测试和上线前重复3,保证我们的feature兼容线上。
5、将feature的代码上线,即:以feature_xxx为基准打一个tag,将tag上线。
6、线上回测没有问题后,将feature_xxx合入master,然后除feature_xxx
$ git checkout master
$ git merge feature_xxx
$ git branch -D feature_xxx
$ git push origin :feature_xxx //(注意“:”后面没有空格)
这样做的原因是永远以一个 正确的基准 开始新需求的开发,也永远将 正确的分支 合并到主线可以形成一个开发 闭环 ,这种方法要比commit打分支更便于理解和操作。可以应对 多人多需求并发场景
最主要的是应对在开发一个长期需求(feature_long)的过程中,插入另一个短期需求或线上bug(feature_short),长线需求可以在短期需求上线后(短期需求feature_short 合并merge 进master后,删除feature_short),将master 合并进feature_long,然后feature_long继续开发。
多人合作开发
我们会遇到对人开发同一个需求,比如前后端两个人,请在 开发前约定 分支名,并由一个人创建好。
git 分支管理方案的更多相关文章
- GIT分支管理模型
GIT分支管理模型 link: git-branching-model 主分支(Main branches) 项目两个常驻分支: master 主干分支(锁定),仅用于发布新版本,平时不能在上面干活, ...
- Git 分支管理是一门艺术
转载: Git 分支管理是一门艺术 1 要确保:团队成员从主分支(master)获得的都是处于可发布状态的代码,而从开发分支(develop)应该总能够获得最新开发进展的代码. 2 "辅助分 ...
- Git 分支管理详解
大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 Cen ...
- Git分支管理[三]
标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 git分支管理命令 git branch #创建分支 git branch -v # ...
- Git—分支管理
Git—分支管理 分支学习:branch称为分支,默认仅有一个名为master的分支.一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支. branch相关常用 ...
- [转载]理解 Git 分支管理最佳实践
原文 理解 Git 分支管理最佳实践 Git 分支有哪些 在进行分支管理讲解之前,我们先来对分支进行一个简单的分类,并明确每一类分支的用途. 分支分类 根据生命周期区分 主分支:master,deve ...
- 02: git分支管理
目录:GIT其他篇 01: git & github 02: git分支管理 目录: 1.1 Git常用命令 1.2 主要分支(保护分支) 1.3 特性分支:feature (开发分支合并到d ...
- git 分支管理——多人协作
git 分支管理--多人协作 一般一个项目有一个master主分支,还有一个develop开发分支.主要是在develop分支上协作开发,然后merge合并到master主分支上. 当从远程仓库克隆时 ...
- Git分支管理及合并
Git分支管理 建立分支 git branch [name] 切换到分支 git checkout [name] 查看有哪些分支 git branch 比较分支 git diff [b ...
随机推荐
- 基于Java实现简单亚马逊爬虫
前言:最近博主买了台Kindle,感觉亚马逊上的图书资源质量挺好,还时不时地会有价格低但质量高的书出售,但限于亚马逊并没有很好的优惠提醒功能,自己天天盯着又很累.于是,我自己写了一个基于Java的亚马 ...
- 互联网轻量级框架SSM-查缺补漏第五天
简言:这个地方我就草草过了,NBA圣诞大战,偷偷看比赛,真香~ 第五章映射器 5.2select元素 自动映射和驼峰映射:MyBatis提供了自动映射功能,在默认的情况下自动映射功能是开启的. 在se ...
- apache和tomcat搭建集群
最近在学习简单的apache服务器和两个tomcat一起搭建集群,这里简单记录一下 1.准备工作 ①搭建一个可以运行的web项目 用maven搭建springmvc项目 ,只要将这里面的web.xml ...
- Effective C++ .08 别让异常逃离析构函数
异常不怎么用,C++能自己控制析构过程,也就有这个要求了.容器不能完全析构其中的元素真是太危险了
- React Native之React速学教程(上)
概述 本篇为<React Native之React速学教程>的第一篇.本篇将从React的特点.如何使用React.JSX语法.组件(Component)以及组件的属性,状态等方面进行讲解 ...
- [翻译] 单例(Singleton)
英文原文: https://sourcemaking.com/design_patterns/singleton 意图 确保一个类只有一个实例,并提供一个访问其实例的全局点: 封装 “即时初始化” ( ...
- Oracle归档模式和非归档模式的区别
一.查看oracle数据库是否为归档模式: Sql代码1.select name,log_mode from v$database; NAME LOG_MODE ------------------ ...
- javascript fundamental concept
http://hzjavaeyer.group.iteye.com/group/wiki?category_id=283 上面这个url非常适合javascript初学者阅读,感谢原作者的分享 什么是 ...
- QueryDSL
QueryDSL只是通用的查询框架,不支持写操作 查询出来的结果是List,我们不得不做额外的工作将它转化为领域实体
- Python学习---重点模块之re
正则表达式是用来操作字符串,但是字符串提供的正则是完全匹配,有时候我们需要进行模糊匹配,这个时候就需要正则表达式了.通过re模块来实现,由C语言来执行底层的匹配 字符匹配(普通字符,元字符): 1 普 ...