概述

搞开发的相信大部分人git天天都在用,那么一般我们在实际工程当中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。那么是如何来规范整个流程的呢 ;

标准其实很多,这里我们介绍下Gitflow;

什么是Gitflow

  • Gitflow是基于Git的强大分支能力所构建的一套软件开发工作流,最早由Vincent Driessen在2010年提出。最有名的大概是下面这张图。

那么针对这个规范我们来看下如何在实际使用中来应用整个流程

分支说明

主要分两种 主分支 和 支援性分支

●     主分支 : 分支目录為单层,分支永久保留

○     develop : 当 feature branches 开发完成后,提供测试时,请合并到此,此分支不做任何的程序修改和变更集,只接受 master 和 feature branches 的合并

○     master : 永远处在 production-ready 状态

●     支援性分支 : 分支层级为双层,合并后且沒使用可刪除

○     feature branches : 新功能开发,分支的建立都以 master 為来源

○     hotfix branches : 临时需修改的 bug ,分支的建立都以 master 為來源

○     release branches: 提供 Marketing 测试,预计要上线的版本,分支的建立都以 master 為來源,且在合并要测试的 feature branches,合并完成后请设定 Tag,Tag 的內容為合并的 feature branches

分支的来源和合并

●     主分支

○     develop

■     来源 : master, feature branches

■     合并 : 无

○     master

■     来源 : 无

■     合并 : release branches, develop

●     支援性分支 : 分支层级為双层

○     feature branches

■     来源 : master

■     合并 : release branches, develop

○     hotfix branches

■     来源 : master

■     合并 : release branches, develop, master

○     release branches

■     来源 : master, feature branches

■     合并 : master

支援性分支命名

●     feature branches : 依功能命名

○     ex: 开发的新功能为 FeedbackDashboard,请命名为 feature/FeedbackDashboard

●     hotfix branches : 依修改的 bug 命名

○     ex: 修改 Invoice 的显示错误,请命名为 hotfix/Invoice

●     release branches : 因為合并多个 feature branch,需依日期命名

○     ex: release/20171013

分支对应环境

●    主分支

○     develop : 开发环境

○     master : 生产环境

●     支援性分支

○     feature branches : 无

○     hotfix branches : 无

○     release branches : 沙箱环境

Git 常用指令

请安裝 Git Windows : https://git-scm.com/download/win

●     分支合并

○     git merge feature/xxx --no-ff

○     :ws!

●     同步远端分支

○     git remote update

○     git remote update origin --prune

●     加入 dll 到 Git

○     git add xxx.dll -f

●     还原本机所有变更集

○     git reset --hard HEAD~

●     建立 Tag

○     git tag -a tagName

●     同步 Tag 到远端

○     git push origin tagName

●     查询 Tag 的內容

○     git show tagName

●     刪除 Tag

○     git push -d origin tagname

○     git -d tagname

玩转git-flow工作流-分支解析相关推荐

  1. git flow工作流

    git flow工作流 背景: ​ 在团队开发中,因为项目的众多,每个项目也都有不同的分支,往往会造成分支的混乱.比如我最近遇到了这样的情况,因为正在开发一个较为长期的项目,正改到一半,却派出来一个紧 ...

  2. git flow 工作流

    Git flow 工作流介绍 Git Flow 工作流是一个非常成熟的方案,也是非开源项目中最常用到的工作流.它定义了一个围绕项目发布的严格分支模型,通过为代码开发.发布和维护分配独立的分支来让项目的 ...

  3. 持续交付之基于Git Flow代码分支策略实践

    文章目录 一.前言 二.主干开发(TBD) 三.特性开发 1.Git Flow 2.产品分支策略 2.1.基本情况 2.2.分支管理 2.3.分支合并时间 2.4.初始化配置 2.5.迭代开发 2.6 ...

  4. Git flow(使用工具自动git flow+解决合并冲突)

    Git flow(使用工具自动git flow+解决合并冲突) 1. Git Flow常用分支 生产分支(master) Master分支只能从其他分支合并,不可直接修改‌,Master分支的Comm ...

  5. git flow 概念

    git flow 概念 Git作为一个代码管理系统,不可避免的会涉及到多人协作. 俗话说无规矩不成方圆.Git Flow 就是如何使用git 分支的一种规范,或者叫做推荐.简单来说就是通过规范化的流程 ...

  6. 增强版 Git Flow 模型

    使用 Git 的最佳方式一直存在争议.那是因为 Git 本身只详细说明了基本的分支操作,这使得它的使用模式: 即分支模型--常常成为用户有意见的地方.虽然Git 分支模型能够帮助开发者减少其在更改代码 ...

  7. mac中使用Sourcetree的git flow

    mac中使用Sourcetree的git flow 前言 1.git flow工作流 1.1 什么是git flow 1.2 git flow上的分支 1.2.1 长期分支 1.2.2 短期分支 1. ...

  8. Git Flow—Git团队协作最佳实践

    一.规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代 ...

  9. git flow进行代码版本管理

    文章目录 1. 什么是git flow 2. Git Flow常用分支说明 2.1 Production分支 2.2 Develop分支 2.3 Feature分支 2.4 Release分支 2.5 ...

最新文章

  1. 调试Linux内核操作指南(withing kgdb)
  2. 1048 采药 1049 装箱问题
  3. 《React Native移动开发实战》一一3.4 完善商品列表——ListView组件
  4. 最优化课堂笔记03:整数规划
  5. html中的时间代码怎么写,html网页代码中的时间样式怎样设置
  6. element-UI栅格系统缩放,导致页面布局效果bug? 叠加?错位?
  7. 12000.PAC19XX电源监测芯片
  8. SQL那些事儿(七)--oracle表空间、用户查看基本语句
  9. Django 路由系统
  10. golang:map转json字符串
  11. Unity 修改asset store下载路径(win10)
  12. 华为云空间 微信聊天记录_微信聊天记录云同步!用了这个方法,再也不怕聊天记录丢失...
  13. el-select 远程搜索时 没有箭头图标
  14. 计算机系统结构专业学什么,江苏大学专业介绍:计算机系统结构
  15. android 网络运营商名称显示规则(锁屏界面,下拉列表)
  16. 微信公众号教程(18)微信音乐播放器开发 上
  17. IONIC--如何使用IONIC
  18. Java——(1)定义一个学生类Student,包含属性:姓名(String name)、年龄(int age) (2)定义Map集合,用Student对象作为key
  19. python导入库的方式有几种_python库导入的三种方式
  20. android tv闹钟_Android 平台有哪些闹钟应用值得推荐?

热门文章

  1. IDEA开发工具的学习
  2. target存放的是编译后的.class文件地方 默认情况下不会讲非class文件放入进入 如果要使用非.class文件 需要通过增加配置方式自动加入文件...
  3. yyblog2.0 数据库开发规范
  4. python3用list实现栈
  5. MVC学习九:MVC 特性本质
  6. CodeChef Chef and Churu [分块]
  7. vue 监听路由变化
  8. 中国人工智能学会通讯——基于视频的行为识别技术 1.1 什么是行为
  9. 设置utf8编码问题
  10. 游戏上线... 记录下...