一、基本开发流程:

二、分支命名

2.1主分支

  ① master :随时可供在生产环境中部署的代码

  ② dev: 保存当前稳定并且最新的开发分支(多人开发同一分支)

2.2辅助分支

主要用于新功能的并行开发、对生产代码的缺陷进行紧急修复工作。合并 master后应该立即删除
  ①用于开发新功能时所使用的feature分支
  ② 用于修正生产代码中的缺陷的bug分支

2.3根据实际开发情况合理命名分支:分支类型_开发者_时间_开发内容

① feature分支:f_yourname_20170416_customLimit
② bug分支:bug_yourname_20170416_customLimit
③ dev分支:dev_yourname_20170416_customLimit

三、git-commit  

3.1什么时候commit?

  commit在什么时候都可以,但是不建议为了保存代码而commit,每一次commit一定是代表代码开发进行到了某一个阶段,可以在后续开发或者合并代码出现错误的时候可以快速回到这个阶段。

3.2 commit注释

  每次提交必须要有提交注释,注释根据本次提交情况,进行简洁描述

3.3 多次提交合并为一次提交(rebase)

  ① git fetch
  ② git rebase
    下面示范一下rebase的使用方法:
    a.更新本地仓库
    

      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版本管理规范的更多相关文章

  1. 基于git的代码版本管理规范及流程-简版

    基于git的简单实用的版本管理规范及流程,包括:代码库的分布.人员角色的划分.代码提交合并流程.代码冲突处理.分支管理. 代码库分类 根据代码库分布的位置及作用,分为以下几类: 主库:位于服务端,所有 ...

  2. Git 版本管理的简单理解

    来源:百度知道 现在使用Git版本管理代码的项目非常多.但是Git本身是一条复杂的系统.我从几个简单的点来说明Git的基本功能.希望能帮助初学者快速入门. 工具/原料   Git code dot j ...

  3. GIT版本管理工具

    原文:http://blog.csdn.net/ithomer/article/details/7527877 Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介 ...

  4. Git 使用规范流程

    Git教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 团队开发中,遵循一个合 ...

  5. 【转】【阮一峰的网络日志】Git 使用规范流程

    作者: 阮一峰 日期: 2015年8月 5日 团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护. 下面是Th ...

  6. Git 使用规范流程(转)

    团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护. 下面是ThoughtBot 的Git使用规范流程.我从中 ...

  7. Git版本管理荟萃

    用惯了svn,突然转到git难免有点不适,写个笔记好好备忘总结一番. 一.先看历史(imooc上的一个图): 二.git与svn GIT跟SVN一样有自己的集中式版本库或服务器.但,GIT更倾向于被使 ...

  8. 利用shell脚本生成CHANGELOG.md(包含git提交规范)

    前言 我们经常看到github上面有很多CHANGELOG.MD包含版本的更新信息,如果我们的git提交能遵循一定的规范,那么使用gitlog就能很方便的生成它 生成结果  shell脚本 http ...

  9. 最全面的Git 使用规范装逼指南[转载]

    <!DOCTYPE html> <script type="text/javascript"> window.logs = { pagetime: {} } ...

随机推荐

  1. 第九周助教工作总结——NWNU李泓毅

    1.助教博客链接: https://www.cnblogs.com/NWNU-LHY/ 2.作业要求博客链接: https://www.cnblogs.com/nwnu-daizh/p/1072688 ...

  2. 山东省ACM多校联盟省赛个人训练第六场 poj 3335 D Rotating Scoreboard

    山东省ACM多校联盟省赛个人训练第六场 D Rotating Scoreboard https://vjudge.net/problem/POJ-3335 时间限制:C/C++ 1秒,其他语言2秒 空 ...

  3. 使用mobx项目开发总结(不再更新)

      mobx的优点 1,使用@observer的组件真正实现按需更新,只有监听的数据发生变化,它才会re-render,尽管父组件发生更新,但是子组件只要有@observer,则不会触发更新,类似于实 ...

  4. vb.net WIN32API 获取listview的值

    Public Class Form1 Public Const LVM_FIRST As Short = &H1000S Public Const LVM_GETITEMCOUNT As In ...

  5. PAT DFS,BFS,Dijkstra 题号

    为什么要分类刷题: 因为刷⼀道算法题需要花⼀两个⼩时甚⾄半天,平时我们还要上课做别的事情,你在⼀段时间内刷算法如果只按照顺序,可能今天遇到了⼀道最短路径的题⽬,弄了半天好不容易看懂了别⼈的代码,以为⾃ ...

  6. Linux 解压/压缩xxx.zip格式(unZip Zip的安装和使用)

    Linux系统没有自带的压缩解压工具:需要我们自己安装:当压缩包为.zip格式时,需要安装zip包 1.apt-get安装: apt-get install zip 2.yum安装: yum inst ...

  7. 关于字符的C++函数

    toupper(), tolower()不会改变原来的字符; 如果输入不是字母, 返回值跟原字符相同. isupper(), islower()..

  8. java面试一、1.4锁机制

    免责声明:     本文内容多来自网络文章,转载为个人收藏,分享知识,如有侵权,请联系博主进行删除. 1.3.锁机制 说说线程安全问题,什么是线程安全,如何保证线程安全 线程安全:当多个线程访问某一个 ...

  9. python 线程Queue 用法代码展示

    from queue import Queue q = Queue(maxsize=3)#限制队列3个 #添加内容进去到队列 q.put(10) q.put(20) q.put(30) print(q ...

  10. 《python语言程序设计》_第6章_函数

    # 6.1_引言 程序1: 结果: Sum from 1 to 10 is 55Sum from 20 to 38 is 513Sum from 35 to 50 is 630 程序2: #程序1和2 ...