• 分支描述

    • 长期存在
      • online

        • 主分支,负责记录上线版本的迭代,该分支代码与线上代码是完全一致的。
      • dev
        • 开发分支,该分支记录相对稳定的版本,所有的feature分支都从该分支创建。
        • 多套开发环境是,命名规范:dev1、dev2
      • test
        • 测试分支,用于代码上线准备,该分支从dev分支创建,创建之后由测试同学发布到测试环境进行测试,测试过程中发现bug需要开发人员在dev分支上进行bug修复,测试通过以后再合并到test分支,由测试发布到测试环境。在上线之前,需要合并该test分支到online分支。
        • 多套测试环境是,命名规范:test1、test2
    • 上线后删除
      • feature

        • 功能分支,用于开发新的功能,不同的功能创建不同的功能分支,功能分支开发完成并自测通过之后,需要合并到dev分支,之后删除该分支。
        • 命名规范:feature/*,比如:feature/tie。(建议英文,拼音也可以)
      • hotfix
        • 紧急bug修复分支,该分支只有在紧急情况下使用,从online分支创建,用于紧急修复线上bug,修复完成后,需要合并该分支到online分支以便上线,同时需要再合并到dev分支。
        • 命名规范:hotfix/*,比如:hotfix/fenan(建议英文,拼音也可以)
      • bugfix(不常用)
        • bug修复分支,用于修复不紧急的bug,普通bug均需要创建bugfix分支开发,开发完成自测没问题后合并到dev分支后,删除该分支。
        • 命名规范:bugfix/*,比如:hotfix/mobile (建议英文,拼音也可以)
  • 分支合并流程介绍

    • 开发
      • 根据功能排期,从dev分支创建feature(功能)分支(组长统一创建、管理),比如:tie、bujian。
      • 联调测试,把feature(功能)分支通过rebase合并到dev分支。
    • 提测
      • 提测时把dev分支通过rebase合并到test分支。
    • 上线
      • 上线把test分支通过rebase合并到online分支。
    • 上线以后
      • 删除所有feature、hotfix、bugfix分支。
      • 删除dev分支,并且从online分支创建dev分支。
        • 操作规范

          git checkout online //切换到online分支
          git branch -D dev //删除本地dev分支
          git push origin :dev //删除远程dev分支
          git checkout -b dev //创建本地dev分支
          git push origin dev:dev //创建远程dev分支
      • 删除test分支,并且从dev分支创建test分支。
        • 操作规范

          git checkout dev //切换到dev分支
          git branch -D test //删除本地dev分支
          git push origin :test //删除远程test分支
          git checkout -b test //创建本地dev分支
          git push origin test:test //创建远程test分支
    • 紧急生产bug
      • 新建hotfix/*分支,验收通过以后,把hotfix/*分支rebase到dev和online分支,之后删除hotfix分支。
    • 一般生产bug(不常用)
      • 新建bugfix/*分支,验收通过以后,把bugfix/*分支rebase到dev分支,之后删除bugfix分支。

二、分支操作常用命令

    • 本地操作

      • git add -A #添加文件
        git reset . #取消添加文件
        git status # 查看状态
        git commit [-a] -m "更新说明" #提交更新,-a为包含内容修改和增删,-m为说明信息,也可以使用 -am。
        git reset HEAD^ #取消掉本次的提交

    • dev分支开发

      • git add -A 
        git commit -m "更新说明"
        git fetch origin dev
        git rebase origin/dev #fetch和rebase可以用这条命令替换 git pull --rebase origin dev
        # 如果有冲突,修改冲突
        git add .
        git rebase --continue #继续合并,如果有异常递归操作
        git rebase --abort #终止合并
        git rebase --skip #跳过本次commit合并
        git push origin dev:dev #提交代码

    • 分支管理

      • # 当前分支为:dev
        git branch -a #查看分支信息
        git branch test #创建test本地分支,test分支和当前本地dev代码一样
        git push origin test:test #把本地分支推送远程仓库,并且创建远程test分支
        git branch -d test #删除本地分支
        git push origin :test #删除远程仓库test分支
        git checkout -b test origin/test # 创建本地test,获取远程仓库test分支最新代码

    • test分支合并dev分支

      • git checkout test #先切换到test分支
        git pull --rebase origin dev
        git pull --rebase origin test
        git push origin test:test

    • tag管理

      • git tag -a v1.0.0 -m 'version1.0.0' #创建tag
        git push origin --tags #提交tag
        git tag -d v1.0.0 #删除本地tag
        git push origin :refs/tags/v1.0.0 #删除远程仓库tag

    • 获取test分支最新代码

      • git fetch --all
        git reset --hard origin/test # 本地未push代码都删除

git 操作规范的更多相关文章

  1. [No0000176]Git常用命令速查表(收藏大全)

    名词 master: 默认开发分支 origin: 默认远程版本库 Index / Stage:暂存区 Workspace:工作区 Repository:仓库区(或本地仓库) Remote:远程仓库 ...

  2. 学习笔记之Git / Gitflow / TortoiseGit

    Git - Wikipedia https://en.wikipedia.org/wiki/Git Git (/ɡɪt/) is a version control system for tracki ...

  3. Mysql高性能优化规范建议

    数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意 ...

  4. Scrum冲刺_Day02

    一.团队展示: 1.项目:light_note备忘录 2.队名:删库跑路队 3.团队成员 队员(不分先后) 项目角色 黄敦鸿 后端工程师.测试 黄华 后端工程师.测试 黄骏鹏 后端工程师.测试 黄源钦 ...

  5. Git Flow 分支管理简述

    概述 Git 是什么 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...

  6. 【原理、命令】Git基本原理、与Svn的区别、命令

    一.Git是什么? Git是目前世界上最先进的分布式版本控制系统.工作原理 / 流程:Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote ...

  7. Git的原理简介和常用命令

    Git和SVN是我们最常用的版本控制系(Version Control System, VCS),当然,除了这二者之外还有许多其他的VCS,例如早期的CVS等.顾名思义,版本控制系统主要就是控制.协调 ...

  8. Git学习总结(5)——搭建Git简易高效服务器

    1. mysysgit+gitblit安装流程 1.1资源  需先下载好的资源(公司用的1.6,1.7+请自行匹配对应的mysysgit+gitblit):  jdk1.6  Git-1.8.4-pr ...

  9. git基本原理

    git基本原理 一.总结 一句话总结:把原理那张图图背下来 1.git中的四大区,除了远程仓库和本地仓库,剩下两个是什么? 解答:工作区和暂存区. 2.git中的四大区(例如远程仓库和本地仓库),他们 ...

随机推荐

  1. Reservoir sampling

    在看蚂蚁***的时候看到这道题,真心觉得有趣,所以啊,一定要投入其中,知识的美妙啊~ 小明在天猫上开了一个网店,某天要开展一个抽奖活动,奖品数量100个.为了保证活动的公平,小明希望保证每个顾客中奖概 ...

  2. CentOS 7 使用SVN+Apache搭建版本控制服务器

    svn简介 Subversion是一个免费/开源的版本控制系统, Subversion 可以跨越时间地对文件和目录, 以及它们的修改进行管理. 这就允许你恢复 数据的旧版本, 或检查数据的修改历史. ...

  3. Tomcat增加Context配置不带项目名访问导致启动的时候项目加载两次

    eclipse发布web应用至tomcat,默认方式下访问该项目是需要带项目名称的,例http://localhost:8080/myapp/.现在需要改成这样访问http://localhost.修 ...

  4. -bash: 未预期的符号 `(' 附近有语法错误

    [1]问题现象 -bash: 未预期的符号 `(' 附近有语法错误 [2]解决方案 给括号前面加反斜杠即可 Good Good Study, Day Day Up. 顺序 选择 循环 总结

  5. function的toString方法

    javascript的创建多行字符串的除了平时常见的”“+ 反斜杠\ 还有ES6的` ` 在js51上发现一个很有意思的方法 function heredoc(fn) { return fn.toSt ...

  6. poj2142 The Balance

    poj2142 The Balance exgcd 应分为2种情况分类讨论 显然我们可以列出方程 ax-by=±d 当方程右侧为-d时,可得 by-ax=d 于是我们就得到了2个方程: ax-by=d ...

  7. 安装Joomla!3

    在日常测试中搭建一个web 站点进行进行linux 相关功能测试,只是不喜欢httpd 或者nginx 的默认界面: 安装Joomla!3: 系统:centos 7 软件:  连接: https:// ...

  8. Linux 系统级开启文件句柄 调优

    系统级开启文件句柄  max-file系统级别的能够打开的文件句柄的数量,Centos7默认是794168. Max-file 与 ulimit -n 的区别 max-file 表示系统级别的能够打开 ...

  9. 尚硅谷面试第一季-13git分支相关命令

    课堂重点:分支相关命令 实际应用-工作流程 实操命令及运行结果: 创建master分支并提交 git init git add . git commit -m "V1.0" git ...

  10. Numpy中的广播原则(机制)

    为了了解这个原则,首先我们来看一组例子: # 数组直接对一个数进行加减乘除,产生的结果是数组中的每个元素都会加减乘除这个数. In [12]: import numpy as np In [13]: ...