• 分支描述

    • 长期存在
      • 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代码都删除

最新文章

  1. #iOS问题记录#动态Html加载本地CSS和JS文件
  2. js原生代码实现轮播图案例
  3. python高级之网络编程
  4. 初识python中的类与对象
  5. 多校4-Walk Out 分类: 比赛 2015-08-02 17:15 21人阅读 评论(0) 收藏
  6. C#时间日期格式大全
  7. 【web安全】第四弹:防火墙技术笔记
  8. 关于ARP欺骗与MITM(中间人攻击)的一些笔记( 二 )
  9. 下载旧版chrome
  10. PHPUnit-函数依赖-数据提供-异常-忽略-自动生成
  11. Linux服务器安全审计工具与流程完全指南
  12. Project facet Java version 1.8 not supported JDK版本不对无法启动项目解决办法
  13. Java 读书笔记 (二) 对象和类
  14. BeautifulSoup模块过滤掉html标签,只拿文本内容(处理XSS攻击)
  15. 机器学习-随机梯度下降(Stochastic gradient descent)
  16. java远程调试(idea)
  17. 一个比较好用的省内存的ORM
  18. js arrayBuffer 字节序问题,小端法,大端法
  19. 网络编程之webclient和httpwebrequest的使用
  20. static 关键字介绍

热门文章

  1. python基础(四)集合
  2. phpstudy 安装 Apcahe SSL证书 实现https连接
  3. Linux tshark抓包
  4. rds下载备份集
  5. Bugku-CTF之flag在index里
  6. 剑指offer(24)二叉树中和为某一值的路径
  7. VC++ 实现INI文件读写操作
  8. UVA1203 Argus
  9. ssm回顾笔记(一)
  10. Hadoop EC 踩坑 :data block 缺失导致的 HDFS 传输速率下降