zoukankan      html  css  js  c++  java
  • git 操作规范

    • 分支描述

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

  • 相关阅读:
    shell学习(11)- seq
    bash快捷键光标移动到行首行尾等
    shell学习(10)- if的使用
    Python 执行 Shell 命令
    查看 jar 包加载顺序
    Linux 中的 sudoers
    Ubuntu 开机启动程序
    指定 Docker 和 K8S 的命令以及用户
    Spark on K8S(Standalone)
    Spark on K8S (Kubernetes Native)
  • 原文地址:https://www.cnblogs.com/lidarui/p/9947679.html
Copyright © 2011-2022 走看看