GitFlow工作流

基于 Git 这一版本控制系统,通过定义不同的分支,探索合适的工作流程来完成开发、测试、修改等方面的需求。

例如:在开发阶段,创建 feature 分支,完成需求后,将此分支合并到 develop 分支上;在发布阶段,创建 release 分支,完成阶段开发任务后,将分支合并到 develop 和 master 分支上;在修改 bug 过程中,创建 Hotfix 分支,基于此分支完成 bug 修复,并合并到 develop 和 master 分支。其中,master分⽀和develop分⽀贯穿项⽬;其他分支均为承担特定指责的临时分⽀。

分支名及作用

分⽀名称作用⽣命周期提交or合并起⽌点
feature分⽀开发某个功能临时分⽀、开发 阶段可提交代码由develop分支产⽣, 最终合并到develop分⽀
develop分⽀记录历史、开发功能贯穿整个 项⽬不能提交,由Feature分 ⽀、Release 分⽀、Hotfix分⽀合并代码整个项目
release分⽀用于本次Release 如文档、测试、 bug修复临时分支、发版 阶段可提交代码由develop分支产⽣, 最终合并到develop 分⽀和master分支
hotfix分⽀⽤于解决线上bug临时分 ⽀、紧急 修复阶段可提交代码由master分⽀产⽣, 最终合并到develop 分⽀和master分支
master分⽀记录历史发布版本贯穿整个项目不能提交,由Release、Hotfix分支合并代码整个项⽬

实例


命令操作说明:

本文演示的命令是使用 win10 环境下的 WSL2.0(特殊情况会注明);

$ 符号所在行是演示命令,$ 符号所在行的下面为输出内容。


初始化项目

创建一个名为 git-demo-workflow-project 的 Git 项目,在该项目内创建一个文件并提交。

$ pwd
$ mkdir git-demo-workflow-project
$ cd git-demo-workflow-project/
$ touch readme.md
$ git init
$ git add .
$ git commit -m "init"

创建 develop 分支

$ git switch -c develop

开发阶段

创建 feature 分支来实现特定功能(实例中用文件 LoginUser.html 代替),完成功能后合并到develop分⽀,并删除 feature分⽀。

$ git checkout -b feature-login develop$ touch LoginUser.html
$ echo "hi, this is user html" > LoginUser.html
$ cat LoginUser.html$ git add .
$ git commit -m "feat: add LoginUser.html"$ git status$ git checkout develop
$ git merge --no-ff feature-login
$ git branch -d feature-login

在这里插入图片描述

发布阶段

创建 release 分⽀,修改提交后,合并到 master、develop分支

$(develop) git checkout  -b release-v0.1 develop$(release-v0.1) echo "bugifx LoginUser.html" >> LoginUser.html
$ git add .
$ git commit -m "fix: bugfix for LoginUser.html"$ git checkout master$ git merge --no-ff release-v0.1$ git checkout develop
$ git merge --no-ff release-v0.1
$ git branch -d release-v0.1

在这里插入图片描述

bug 修复阶段

创建 hotfix 分⽀修复 bug,而后合并到 master、develop分⽀。

$ git checkout -b hotfix-v0.1.1 master
$ git status$ echo "hotfix for LoginUser.html" >> LoginUser.html
$ cat LoginUser.html
$ git add .
$ git commit -m "hotfix: do something for LoginUser.html"$ git checkout master
$ git merge --no-ff hotfix-v0.1.1
$ git tag v0.1.1$ git checkout develop
$ git merge --no-ff hotfix-v0.1.1
$ git branch -d hotfix-v0.1.1

在这里插入图片描述



参考:faster-git datawhale

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/638871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习常用代码总结(k-means, NMS)

目录 一、k-means 算法 二、NMS 一、k-means 算法 k-means 是一种无监督聚类算法,常用的聚类算法还有 DBSCAN。k-means 由于其原理简单,可解释强,实现方便,收敛速度快,在数据挖掘、数据分析、异常检测、模式识别、金…

PHP+vue+Mysql家庭理财管理系统演5x6nf

本文着重阐述了收支管理系统的分析、设计与实现,首先介绍开发系统和环境配置、数据库的设计,对系统的功能需求作出分析,根据需求对系统进行设计,明确各个部分的规范,来完成系统的设计。最后在对设计的系统进行一系列的…

k8s1.27.2版本二进制高可用集群部署

文章目录 环境软件版本服务器系统初始化设置关于etcd签名证书etcd集群部署负载均衡器组件安装设置关于k8s自签证书自签CAkube-apiserver 自签证书kube-controller-manager自签证书kube-scheduler自签证书kube-proxy 自签证书admin 自签证书 控制平面节点组件部署**部署kube-api…

Spring 事务原理一

从本篇博客开始,我们将梳理Spring事务相关的知识点。在开始前,想先给自己定一个目标:通过此次梳理要完全理解事务的基本概念及Spring实现事务的基本原理。为实现这个目标我想按以下几个步骤进行: 讲解事务中的一些基本概念使用Sp…

x-cmd pkg | jq - 命令行 JSON 处理器

目录 简介首次用户功能特点类似工具进一步探索 简介 jq 是轻量级的 JSON 处理工具,由 Stephen Dolan 于 2012 年使用 C 语言开发。 它的功能极为强大,语法简洁,可以灵活高效地完成从 JSON 数据中提取特定字段、过滤和排序数据、执行复杂的转…

Java NIO (三)NIO Channel类

1 概述 前面提到,Java NIO中一个socket连接使用一个Channel来表示。从更广泛的层面来说,一个通道可以表示一个底层的文件描述符,例如硬件设备、文件、网络连接等。然而,远不止如此,Java NIO的通道可以更加细化。例如&a…

【GitHub项目推荐--GitHub 上的考研神器】【转载】

如果有打算考研的读者,这些开源项目不能错过。把各个学校近几年考研初试真题分享给大家(包括 408),应该能帮上大家,文末有下载方式。 同时,我把盘点的开源相关的学习项目更新到 Awesome GiHub Repo&#xf…

【GitHub项目推荐--智能家居项目】【转载】

如果你具备硬件、软件知识,这个项目肯定符合你的胃口。 物美智能是一套软硬件结合的开源项目,该系统可助你快速搭建自己的智能家居系统。你可以学习到设备的集成和软硬件交互。 PC 端或者手机与服务端通信,单片机可以接受遥控设备和服务器的…

硬件-11-服务器的基础知识

参考服务器基础知识大科普 1 电视剧背景 服务器被誉为互联网之魂。 电视剧《创业年代》是一部有冯绍峰和袁姗姗等人联手主演的一部讲述我国第一批科技创业者创业故事的电视剧,可以说是他们铲下了建设中关村的第一捧土。 电视剧《创业年代》中的潮信公司并没有…

【神经网络】火箭点火发射-诠释一场数据与学习的奇妙之旅

火箭点火发射来理解神经网络的故事细节 在一个充满科技气息的研究室里,一群科学家们正在忙碌地准备着一次重要的火箭点火发射。这次发射不仅是一次航天探索的壮丽征程,更是一场利用神经网络处理数据的智慧之旅。 在火箭发射的背后,神经网络…

中仕教育:研究生毕业可以考选调生吗?

选调生的报考条件之一是应届生,研究生毕业也属于应届生,所以是可以报考的。 选调生不同学历的年龄限制: 1.应届本科生:年龄在25岁以内 2.应届研究生:年龄在30岁以内 3.应届博士生:年龄在35岁以内 研究…

excel统计分析——Tukey法多重比较

参考资料:生物统计学 https://real-statistics.com/one-way-analysis-of-variance-anova/unplanned-comparisons/tukey-hsd/ Tukey法是基于学生化极差分布计算最小显著极差(LSR),根据平均数个数调整最小显著极差。 LSR&#xff1…

LINUX常用工具之sudo权限控制

一、Sudo基本介绍 sudo是Linux 中用于允许特定用户以超级用户或其他特权用户的身份执行特定的命令或任务。sudo 提供了一种安全的方法,使用户能够临时获取额外的权限,而不需要以完全超级用户的身份登录系统。sudo也可以用了设置黑名单命令清单&#xff…

ROS第 13 课 TF 坐标系广播与监听的编程 实现

文章目录 第 13 课 TF 坐标系广播与监听的编程 实现1.机器人的坐标变换2.创建功能包3.编程方法3.1 编写广播和监听程序3.2 运行程序 第 13 课 TF 坐标系广播与监听的编程 实现 1.机器人的坐标变换 在进行编程前,先需要了解机器人的坐标变换。这里以运行海龟案例来…

有关软件测试的,任何时间都可以,软件测试主要服务项目:测试用例 报告 计划

有关软件测试的,任何时间都可以,软件测试主要服务项目: 1. 测试用例 2. 测试报告 3. 测试计划 4. 白盒测试 5. 黑盒测试 6. 接口测试 7.自动…

Vuex的基础使用

在使用之前要先了解Vuex的组成结构,跟对应的使用关系。 在上图的结构图中可以看到四个组成部分,首先是Components(组件)、Actions(行动)、Mutations(变化)、state(状态/数…

Vue——计算属性

文章目录 计算属性computed 计算属性 vs methods 方法计算属性完整写法 综合案例:成绩案例 计算属性 概念:基于现有的数据,计算出来的新属性。依赖的数据变化,自动重新计算 语法: ①声明computed配置项中,一个计算属性…

gin渲染篇

1. 各种数据格式的响应 json、结构体、XML、YAML类似于java的properties、ProtoBuf package mainimport ("github.com/gin-gonic/gin""github.com/gin-gonic/gin/testdata/protoexample" )// 多种响应方式 func main() {// 1.创建路由// 默认使用了2个中…

链表中倒数第k个结点(附带源码)

目录 代码部分: 核心:看图 代码部分: struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {// write code here// write code hereif (k 0){return NULL;}else{struct ListNode* slow pListHead, * fast pListHead;//…

Linux内核pinctrl子系统驱动框架

一. 简介 本文简单了解一下Linux内核代码中, pinctrl子系统的驱动实现。 注意:本文会涉及到 Linux 驱动分层与分离、平台设备驱动等还未讲解的知识 ,所以,也不会影响后续的实验。 二. Linux内核pinctrl子系统驱动 1. probe函…