产品管理开发之Git工作流和分支规范推荐
前言
无论是开源项目还是内部项目,使用Git都是大势所趋,尤其是在产品管理这块,使用Git大大提高了开发效率和产品的交付频率。本篇,针对Git的工作流和分支使用,进行了一些推荐。
目录
1 产品管理开发之Git工作流和分支规范推荐
1.1 Git工作流模型推荐
1.2 Git产品开发分支规范要求
1.2.1 永久分支
1.2.1.1 master(稳定版)
1.2.1.2 开发版(develop)
1.2.2 临时性分支
1.2.2.1 功能(feature)分支
1.2.2.2 预发布(release)分支
1.2.2.3 修补bug(hotfix)分支
1.2.3 代码分支提交使用规范
1 产品管理开发之Git工作流和分支规范推荐
无论是开源项目还是内部项目,使用Git都是大势所趋。因此,针对Git的工作流和分支使用,本篇进行了一些推荐:
1.1 Git工作流模型推荐
1.2 Git产品开发分支规范要求
在产品开发或者复杂项目开发,我们推荐严格遵循此规范进行开发。对于中小项目和个人开发,您可以按需来设计自己的规范和要求。
1.2.1 永久分支
1.2.1.1 master(稳定版)
主分支,主分支只用来发布重大版本。所有提供给用户使用的正式版本,都在这个主分支上发布。
1.2.1.2 开发版(develop)
日常开发应该基于此分支来完成。
如果想正式对外发布,就在Master分支上,对Develop分支进行"合并"(merge)。
1.2.2 临时性分支
除了永久分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。临时性分支主要有三种:
功能(feature)分支
预发布(release)分支
修补bug(hotfix)分支
这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有Master和Develop。
1.2.2.1 功能(feature)分支
功能分支,它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。
功能分支的名字,请采用feature/feature1 的形式命名。
1.2.2.2 预发布(release)分支
预发布分支,它是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。
预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,请采用release/release1的形式。
1.2.2.3 修补bug(hotfix)分支
修补bug分支。软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。
修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,请采用hotfix/fixbug1的形式。
1.2.3 代码分支提交使用规范
使用Git过程中,必须通过创建分支进行开发,坚决禁止在主干分支上直接开发。review的同事有责任检查其他同事是否遵循分支规范。
在Git中,默认是不会提交空目录的,如果想提交某个空目录到版本库中,需要在该目录下新建一个.gitignore 的空白文件,就可以提交了
把外部文件纳入到自己的Git 分支来的时候一定要记得是先比对,确认所有修改都是自己修改的,然后再纳入。
提交时,一定要填写有意义的注释。注释内容要求如下:第一行为提要,然后逐行罗列出功能点、主要变动、以及需要注意的问题等等。具体如下所示:
注释提交模板:
简要说明(第一行)
(空行)
(要点)
(要点)
注释提交参考:
后台菜单管理增加区域菜单功能,修复日志记录器若干问题
后台菜单管理增加区域菜单功能,目前分为系统平台和租户平台,根据属性MenuPlatform来设置增加若干系统管理菜单
完善菜单模块,以便加载不同平台菜单
修复日志记录器为NULL的情形
产品管理开发之Git工作流和分支规范推荐的更多相关文章
- Android开发之Git配置
Android开发之Git配置 1.首先git配置: 输入命令: git config --global user.name "xxx.xx" git config --globa ...
- iOS开发之git学习
本人是参考廖雪峰的git学习的.他写的非常详细,我在这里就是把我学习中的总结以及碰到的坑写出来. /* 初始化git仓库:git init */ /* 添加文件到git仓库 */ 分两步: 第一步:追 ...
- 【转】Odoo开发之:工作流 workflow
在OpenERP中,工作流是管理一组“所做的事情”(与一些数据模型的记录关联)的人为现象.工作流提供了高级别的方式来组织记录要上做的事情. 具体地说,工作流是一个定向的路径,这里节点称为活动并且弧线称 ...
- 项目开发之git配置
1.本地安装git配置 安装步骤,这里不详细介绍,软件下载然后安装即可. 查看git安装版本 #git --version 2.git密钥生成 ssh-keygen -t rsa -C "f ...
- 单片机开发之C语言编程基本规范
为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范.本标准规定了程序设计人员进行程序设计时必须遵循的规范.本规范主要针对单片机编程语言和08编译器而言,包括排版.注释.命名.变量 ...
- Liferay7 BPM门户开发之2: BPMN 2.0 规范入门 (Activiti BPMN extensions)
Liferay最大的问题是BPM弱,如果做企业开发,BPM必不可少,所以直入主题,做个BPMN2入门. 本文参考地址:http://activiti.org/userguide/index.html# ...
- JS开发之CommonJs和AMD/CMD规范
CommonJS是主要为了JS在后端的表现制定的,他是不适合前端的,AMD(异步模块定义)出现了,它就主要为前端JS的表现制定规范. 在兼容CommonJS的系统中,你可以使用JavaScript开发 ...
- 项目开发中git常用命令、git工作流、git分支模型
#新建代码库git init # 在当前目录新建一个Git代码库git init [project-name] # 新建一个目录,将其初始化为Git代码库git clone [url] # 下载一个项 ...
- git flow开发分支管理模型
Git Flow 是什么 Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践.Git Flow是一套使用Git进行源代码管理时的一套行为规范和简化 ...
随机推荐
- Python:怎样用线程将任务并行化?
如果待处理任务满足: 可拆分,即任务可以被拆分为多个子任务,或任务是多个相同的任务的集合: 任务不是CPU密集型的,如任务涉及到较多IO操作(如文件读取和网络数据处理) 则使用多线程将任务并行运行,能 ...
- Python学习 Part3:数据结构
Python学习 Part3:数据结构 1. 深入列表: 所有的列表对象方法 list.append(x): 在列表的末尾添加一个元素 list.extend(L): 在列表的末尾添加一个指定列表的所 ...
- mock测试之powermock
由于公司框架依赖别的模块, 导致我们开发老是需要跟着他们的脚步, 所以我的上级领导提出这个方案说直接跳过他们,我们自己在本地测试,然后就找了它, 导入相关jar <dependency> ...
- Python实现批量新建SecureCRT Session
最近因为工作需要,我需要在ssh的时候保存几千台网关的session,工作量相当大(也就是ssh的时候需要记住用户名和密码,然后还要再session选项中录入enable密码,相当繁琐),而且设备的用 ...
- 详解vue的diff算法
前言 我的目标是写一个非常详细的关于diff的干货,所以本文有点长.也会用到大量的图片以及代码举例,目的让看这篇文章的朋友一定弄明白diff的边边角角. 先来了解几个点... 1. 当数据发生变化时, ...
- 第一章——机器学习总览(The Machine Learning Landscape)
本章介绍了机器学习的一些基本概念,已经应用场景.这部分知识在其它地方也经常看到,不再赘述. 这里只记录一些作者提到的,有趣的知识点. 回归(regression)名字的来源:这是由Francis Ga ...
- 在Python中用Request库模拟登录(四):哔哩哔哩(有加密,有验证码)
!已失效! 抓包分析 获取验证码 获取加密公钥 其中hash是变化的,公钥key不变 登录 其中用户名没有被加密,密码被加密. 因为在获取公钥的时候同时返回了一个hash值,推测此hash值与密码加密 ...
- DCOS实践分享(4):如何基于DC/OS整合SMACK(Spark, Mesos, Akka, Cassandra, Kafka)
这篇文章入选CSDN极客头条 http://geek.csdn.net/news/detail/71572 当前,要保证业务的市场竞争力,仅靠设计一个可用并且好看的产品,已经完全不能满足要求.全球消费 ...
- Hibernate验证器
第 4 章 Hibernate验证器 http://hibernate.org/validator/documentation/getting-started/#applying-constrain ...
- tkinter调取签名网而设计签名页面
# --*-- coding:utf-8 --*-- import tkinter as tk import re import requests from tkinter import messag ...