实际项目中如何使用Git做分支管理
前言
Git是一种强大的分布式版本控制系统,在实际项目开发中使用Git进行分支管理是非常常见的做法,因为它可以帮助团队高效的协作和管理项目的不同版本,今天我们来讲讲在实际项目中最常用的Git分支管理策略Git Flow。
常见的Git分支管理策略
Git Flow:
Git Flow是一种非常流行的分支管理策略,由Vincent Driessen提出。Git Flow的核心思想是保持主分支稳定,通过使用不同类型的分支来隔离不同类型的工作。
GitHub Flow:
GitHub Flow是由GitHub提出的一种更简化的分支管理策略。它强调持续交付和快速部署。
GitLab Flow:
GitLab Flow是GitLab推荐的一种分支管理策略,它结合了Git Flow和GitHub Flow的一些特点。
Trunk Based Development
Trunk-Based Development是一种极端简化的分支管理策略,它强调在单一的主分支(通常称为trunk或mainline)上进行所有的开发工作。
Git开发、发布、缺陷分离模型介绍
在一些流程完善的公司往往都会有着自己一套比较完善的Git分支管理模型来保障开发和生成环境的代码稳定性,而Git开发、发布、缺陷分离模型是一种流行且适用于大多数团队的Git分支管理模型,它支持master/develop/feature/release/hotfix类型分支。使用这种分支管理模型可以有效地隔离开发、发布和缺陷修复工作,提高代码的质量和稳定性。同时,也可以更好地协作和进行版本管理。如下是一张详细的master/develop/feature/release/hotfix类型分支管理图:

对应分支的作用
master分支
master分支是主分支,包含了已经发布到生产环境的稳定,可靠版本的代码。一般情况下,master分支应该只用于发布新版本,而不应该直接修改或提交新的功能。
develop分支
develop分支是开发分支,包含了当前正在进行的所有功能和任务。所有新功能开发、改进、优化等都应该从此分支开始,并最终合并回此分支。
feature分支
feature分支是从develop分支创建的分支,通常用于开发新功能。每个新功能都应该从develop分支开始,并在一个独立的feature分支上进行开发工作。一旦新功能得到完全实现、测试并且可靠,该分支就会被合并回develop分支。
release分支
release分支是从develop分支创建的分支,通常用于为即将发布的版本做准备工作。在此分支上可以进行最终的测试、修复bug、检查文档等操作,以确保发布版本的质量。一旦准备工作完成并且得到完全测试,该分支就会被合并回master分支,并作为新的发布版本。并将该分支合并回develop分支,以便后续的开发工作。
hotfix分支
hotfix分支是从master分支创建的分支,用于在生产环境中紧急修复问题。修复完毕后,该分支将会被合并回master和develop分支。
Git快速入门教程
Git可视化管理工具
参考文章
https://nvie.com/posts/a-successful-git-branching-model/
实际项目中如何使用Git做分支管理的更多相关文章
- [转]实际项目中如何使用Git做分支管理 (A successful Git branching model)
来自 https://nvie.com/posts/a-successful-git-branching-model/ In this post I present the development m ...
- git的介绍、git的功能特性、git工作流程、git 过滤文件、git多分支管理、远程仓库、把路飞项目传到远程仓库(非空的)、ssh链接远程仓库,协同开发
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码 ...
- Git的分支管理
0.引言 本文参考最后的几篇文章,将git的分支管理整理如下.学习git的分支管理将可以版本进行灵活有效的控制. 1.如何建立与合并分支 1.1分支的新建与合并指令 新建分支 newBranch,并进 ...
- 你真的了解git的分支管理跟其他概念吗?
现在前端要学的只是太多了,你是不是有时会有这个想法,如果我有两个大脑.一个学Vue,一个学React,然后到最后把两个大脑学的知识再合并在一起,这样就能省时间了. 哈哈,这个好像不能实现.现实点吧!年 ...
- PHP项目中composer和Git的组合使用
highlight: 在国内由于众所周知的原因,composer的package可能无法访问,解决办法是使用中国的全镜像: composer config -g repositories.packag ...
- 工作中常见的Git本地分支与远程分支同步场景
Git 是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. 一直以来本人使用 Git 处理分支都是现用现查,一是因为怕出错,二还是因为懒,作为一名四年开发经验的前端 ...
- Git Flow 分支管理简述
概述 Git 是什么 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...
- git(二) 分支管理
概念 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇 ...
- 139.00.005 Git学习-分支管理
@(139 - Environment Settings | 环境配置) 一.Why? 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交, ...
- git的使用学习(五)git的分支管理
分支管理 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平 ...
随机推荐
- win32 - 将剪贴板位图存储为文件
简单的demo: #include <iostream> #include <fstream> #include <windows.h> typedef struc ...
- dpt-shell 抽取壳实现原理分析(执行逻辑)
开源项目位置(为大佬开源精神点赞) https://github.com/luoyesiqiu/dpt-shell 抽取壳分为两个步骤 加壳逻辑: 一 对apk进行解析,将codeItem抽出到一个文 ...
- pigz命令
多线程的解压缩文件 语法格式:pigz 参数 文件名 常用参数 -- 显示压缩后的内容 -p 设置线程数 -b 设置文件数据块大小 -q 静默执行模式 -d 将压缩文件恢复为原始文件 -r 递归处理所 ...
- npm模块全局安装后无法使用解决方案
好家伙 npm模块全局安装后无法使用 估计是少配了环境变量 1.使用命令: npm config get prefix 找到全局包的安装位置 2.随后我们右键"我的电脑"打 ...
- 第一百一十六篇: JavaScript理解对象
好家伙,本篇为<JS高级程序设计>第八章"对象.类与面向对象编程"学习笔记 1.关于对象 ECMA-262将对象定义为一组属性的无序集合.严格来说,这意味着对象就是 ...
- 【Azure 应用服务】更便捷的方式抓取Azure App Service for Windows的网络包
问题描述 在之前的一篇博文中,介绍了在App Service中抓取网络日志: 抓取Windows的网络包:[应用服务 App Service]App Service中抓取网络日志 抓取Linux的网络 ...
- 【Azure 环境】当Azure Key Vault中存储的证书即将过期时,如何设置Alert邮件警报?
问题描述 当Azure Key Vault 中存储的证书即将过期时, 如何设置Alert邮件警报? 问题解答 首先,在创建完一个证书后,需要为证书添加一个"证书联系人" 然后,点击 ...
- 【Azure 环境】当在Azure 环境中调用外部接口不通时,如何定位SSL Certificate Problem
问题描述 如果在Azure VM中,发现同一个API,一台VM可以访问成功,另外一台访问失败.如何来调试并定位问题呢? 问题分析 第一步,查看访问外部API不通时候出现什么错误.如果没有明确的错误消息 ...
- 用 nebula_dart_gdbc 在移动设备玩图数据库,泰酷辣!
nebula_dart_gdbc,是访问 NebulaGraph 的 Dart 语言客户端,在 dart_gdbc 的规范下进行开发. dart_gdbc 是一套使用 Dart 语言定义的图数据库标准 ...
- For 循环跟yield区别?
for循环遍历一个万亿级别的长列表,会将这个列表的全部数据载入到内存中去,如果你的内存很小就会溢出,即使是内存很大,这个操作也是十分占用资源的. 而使用生成器,则会将数据的状态(例如:遍历到列表的哪个 ...