git版本管理规范
一、基本开发流程:
二、分支命名
2.1主分支
① master :随时可供在生产环境中部署的代码
② dev: 保存当前稳定并且最新的开发分支(多人开发同一分支)
2.2辅助分支
2.3根据实际开发情况合理命名分支:分支类型_开发者_时间_开发内容
三、git-commit
3.1什么时候commit?
3.2 commit注释
3.3 多次提交合并为一次提交(rebase)

b.选择origin master
c.commit 合并
d.存在冲突时,必须要解决
e.继续 rebase
四、 Git-push
4.1什么时候push?
① 代码需要提测,并且自己都测试OK了,如果一次性测试通过则可以把master合并到自己的分支,然后push自己的分支,进行提测
② 代码提测了,如果有问题,把问题修改好后,再push自己的分支。
4.2 push流程
- git fetch
- git checkout dev
- git branch -b copy_dev(copy新分支进行合并)
- git merge origin master (存在冲突必须解决)
解决冲突:
a) git reset --HARD HEAD^
b) git lg(查看你的所有提交的历史)
- git checkout dev
- git merge copy_dev
- git branch -d copy_dev
- git push origin dev
五、Git-issue
5.1对需求完全了解后,开发前先整理思路,在git上填写Issues
① 整理思路,快速开发代码
② 方便后续出现线上问题,快速定位
③ 有类似功能开发时,方便别人借鉴,和自己快速回忆
④ 相互学习
5.2 写完Issues后,找有相关开发经验同事评审
5.3 影响范围较大的Issues必须拉上大家一起评审
5.4 issues规范 (别人一看就懂)
① 需求概述
② 难点,解决方案
③ 概要设计
④ 详细设计
六、git-codeReview
6.1 代码开发完毕,自测通过后,提测之前,在git上提merge Requests
① WIP:分支标题
② Issues
6.2 找有相关开发经验人员进行评审
6.3 按照评审人的建议进行修改,修改后自测
七、 Git-merge
7.1 merge流程
① merge之前保证自己的工作区是干净的
② fetch,更新本地仓库
③ 合并master,如果出现merge conflict,找到相关开发人员一起解 决,确保操作正确
④ merge完成后,验证是否成功
7.2 合主干
① 多人在不同分支上开发多个需求,需要同时上线,事先确定各自上线时间
② 别人合主干后,需要再次拉取最新的master进行merge,进行回归测试
③ 上线的代码一定是提测的代码,是完全一模一样,中间如果有过合并代码就要重新提测,早合并代码比较合适
④ merge Request上,需要附带Issue,代码评审人,测试用例
git版本管理规范的更多相关文章
- 基于git的代码版本管理规范及流程-简版
基于git的简单实用的版本管理规范及流程,包括:代码库的分布.人员角色的划分.代码提交合并流程.代码冲突处理.分支管理. 代码库分类 根据代码库分布的位置及作用,分为以下几类: 主库:位于服务端,所有 ...
- Git 版本管理的简单理解
来源:百度知道 现在使用Git版本管理代码的项目非常多.但是Git本身是一条复杂的系统.我从几个简单的点来说明Git的基本功能.希望能帮助初学者快速入门. 工具/原料 Git code dot j ...
- GIT版本管理工具
原文:http://blog.csdn.net/ithomer/article/details/7527877 Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介 ...
- Git 使用规范流程
Git教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 团队开发中,遵循一个合 ...
- 【转】【阮一峰的网络日志】Git 使用规范流程
作者: 阮一峰 日期: 2015年8月 5日 团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护. 下面是Th ...
- Git 使用规范流程(转)
团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护. 下面是ThoughtBot 的Git使用规范流程.我从中 ...
- Git版本管理荟萃
用惯了svn,突然转到git难免有点不适,写个笔记好好备忘总结一番. 一.先看历史(imooc上的一个图): 二.git与svn GIT跟SVN一样有自己的集中式版本库或服务器.但,GIT更倾向于被使 ...
- 利用shell脚本生成CHANGELOG.md(包含git提交规范)
前言 我们经常看到github上面有很多CHANGELOG.MD包含版本的更新信息,如果我们的git提交能遵循一定的规范,那么使用gitlog就能很方便的生成它 生成结果  shell脚本 http ...
- 最全面的Git 使用规范装逼指南[转载]
<!DOCTYPE html> <script type="text/javascript"> window.logs = { pagetime: {} } ...
随机推荐
- 在IIS7上导出所有应用程序池的方法批量域名绑定
在IIS7+上导出所有应用程序池的方法:%windir%/system32/inetsrv/appcmd list apppool /config /xml > c:/apppools.xml ...
- laravel 打印完整sql
DB::connection()->enableQueryLog(); // 开启QueryLog \App\User::find(1); dump(DB::getQueryLog());
- Maven学习笔记5:Maven属性、profile和资源过滤
Maven的六类属性 内置属性 主要有两个常用内置属性:${basedir}项目的根目录(包含pom.xml文件的目录),${version}项目版本 POM属性 用户可以使用该属性引用POM文件中对 ...
- python_flask 基础巩固(自定义URL转换器)
自定义URL转换器(在BaseConverter类外定义)from werkzeug.routing import BaseConverter定义类继承BaseConverter 实现类app.url ...
- Monkey测试结果分析
Monkey测试结果分析 什么是monkey Monkey 测试是 Android 自动化测试的手段之一,它通过模拟用户的按键输入.触摸屏输入等,测试设备多长时间出现异常.Monkey 是一个命令行工 ...
- Missing initializer in const declaration
这是一个 JS 的报错. 如果你要声明一个常量,必须要赋初值.否则就会报错. 比如这样就可以触发这个报错: const foo; 或者 const bar = xxx; 等号右侧由于拼写失误导致的js ...
- 使用Calibre自带工具批量转换电子书格式
原来使用Calibre转换电子书格式都是先导入,再转换,再把转换后的文件复制出来,最后再改名. 虽然可以批量导入和转换,但复制和改名要一个处理.后来发现Calibre自带命令行转换工具,就写了一个批处 ...
- Java记事本编写第一个程序“你好,世界”
- Android屏幕相关的概念
1. 屏幕尺寸 实际的物理尺寸,作为屏幕的对角线测量. 为简单起见,安卓所有的实际屏幕尺寸为四个广义的大小:小,正常,大,和特大. 2. 屏幕密度 一个屏幕的物理区域内像素的数量:通常称为DPI(每英 ...
- 每天学点SpringCloud(二):服务注册与发现Eureka
相信看过 每天学点SpringCloud(一):简单服务提供者消费者调用的同学都发现了,在最后消费者调用提供者的时候把提供者的地址硬编码在了代码中,这样的方式肯定是不行的,今天,我们就是要Eureka ...