Gitflow实操以及代码审查Pull Request操作

1.背景

之前一直有用过gitflow,但是一直没有归纳技术,另一方面也是每个团队用到的gitflow都不一致。而最近做项目要用gitflow,趁此机会分享一下gitflow的操作。

2.gitflow介绍

用git一直有一个问题,就是怎么保证代码稳定性,保证代码干净不被污染。如果一直用一个分支(master),很多像这样的问题就会接踵而至,因为所有人都会不断地往里面写代码,于是Vincent Driessen先提出来一套完整的gitflow方案。
本文参考项目中实际的情况,对gitflow有选择地使用。其中release、hotfix分支就不再涉及。这两个分支和其他分支的操作大同小异。
下图是完整的gitflow图:
在这里插入图片描述

2.1master分支

这个是主分支,我们所谓的保证代码干净不被污染,基本上就是针对他而言。master分支的功能,一个个合并来自develop分支的代码,另一个就是创建tag;

2.2develop 分支

这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支

2.3Feature 分支

这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支

3.操作

首先,要做开发就先要有develop分支,这个是我们在开发过程中最核心的分支。如下图所示,我们从master中牵出develop分支:
在这里插入图片描述
命名为develop
在这里插入图片描述
这个时候,我们创建的分支还是在本地,所以我们要push一下,把分支推到服务器上。

在这里插入图片描述
推送完,可以看到服务上就多了一个分支
在这里插入图片描述
如果这个时候,我们需要做一些开发,那么就要从develop分支中牵出新的feature分支
在这里插入图片描述
同样的。也要提交到服务端
在这里插入图片描述
feature1分支在经过一些列修改之后,接下来就是代码合并了。合并分两种:1.简单Merge;2.Pull Request代码审查后Merge;
简单的Merge操作如下
在这里插入图片描述
合并完push就可以。这种合并必须要有权限。

我们重点讲Pull Request,Pull Request是针对有代码审核需求的项目。在一些大公司经常用到,因为i额他们对代码的管理很严格。
当我们feature1的分支修改完推送到服务器之后,需要合并到develop。我们需要去网页上操作Pull Request。
在这里插入图片描述
添加完之后,就进入审批界面

在这里插入图片描述
审批界面还可以看到代码差异等等。

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

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

相关文章

服务器如何开启远程连接?

服务器开启远程连接是网络管理中一项重要的功能。通过远程连接,用户可以在任何地方远程访问服务器,从而进行管理、维护和监控等操作。远程连接的开启可以为工作提供便利性和效率,但同时也带来了安全风险。确保远程连接的安全性和可靠性是至关…

RPC的介绍和架构发展

RPC概念: RPC是远程过程调用协议,是一种不需要了解底层网络技术,调用远程计算机服务。 RPC框架的组成: 图1 当总项目的数据量、访问量不断提高,就把他分成多个服务,减轻单体机器的压力。分开的ABC服务之…

python高阶函数:zip()

概述与基本用法 zip() 是 Python 内置函数之一,用于将多个可迭代对象打包成一个元组序列,然后返回一个迭代器。它可以接受任意数量的可迭代对象作为参数,并将它们的元素按顺序一一对应地打包成元组。 以下是 zip() 函数的基本用法&#xff…

【前端】vue3树形组件使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、树形组件简介二、树形组件使用三、总结 前言 随着开发语言及人工智能工具的普及,使得越来越多的人学习使用vue前端工具,本文主要介…

iOS - 多线程-GCD-队列组

文章目录 iOS - 多线程-GCD-队列组1. 队列组1.1 基本使用步骤 iOS - 多线程-GCD-队列组 开发过程中,有时候想实现这样的效果 多个任务并发执行所有任务执行完成后,进行下一步处理(比如回到主线程刷新UI) 1. 队列组 可以使用GC…

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动 解决步骤: 1.去以下的目录中删掉.npmrc文件(只在C:\User.npmrc) 2.清除缓存,使用npm cache verify 不要用npm cache clean --force,容易出现npm WAR…

tsconfig.json 常用属性配置和注释

下面是一个详细的 tsconfig.json 文件示例,其中包含了许多常用的配置选项。这个配置适用于一个使用 TypeScript 进行前端和后端开发的通用项目。 {"compilerOptions": {"target": "es6", // 指定 ECMAScri…

大文件的分片上传和断点上传

一、大文件的分片上传 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Chunked File Upload</title> </head> <body><input type"file" id"fileInput">…

onlyoffice 插件执行后如何将消息返回给页面进行处理返回消息

使用免费的onlyoffice&#xff0c;前端操作插件是困难的&#xff0c;但是虽然是困难的&#xff0c;也是可以解决的&#xff0c;猜想这块内容是收费部分给封装起来了&#xff0c;既然要用免费的&#xff0c;那就要自己实现。 使用方法docEditor.serviceCommand(cmd,param); 可以…

【C++】:构造函数和析构函数

目录 前言一&#xff0c;构造函数1.1 什么是构造函数1.2 构造函数的特性1.3 总结 二&#xff0c;析构函数2.1 什么是析构函数2.2 析构函数的特性2.3 总结 前言 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何…

机器学习学 - 监督学习 - 多项式回归与决策树回归

机器学习学习笔记 - 监督学习 - 多项式回归与决策树回归 一、多项式回归 多项式回归是线性回归的一种扩展&#xff0c;用于处理样本特征与样本值之间存在非线性关系的情况。当数据之间的关系并非简单的线性关系时&#xff0c;线性回归可能无法得到很好的拟合效果。此时&#…

深度学习中的子空间、线性变换和矩阵概念应用

1.表示子空间 在深度学习中&#xff0c;“不同的表示子空间”通常是指模型通过不同的参数&#xff08;例如权重矩阵&#xff09;将输入数据映射到不同的高维空间&#xff0c;这些空间被称为表示子空间。每个子空间都能够捕获输入数据中不同的特征或模式。以下是一些详细解释&am…

Spring(SSM框架)

目录 一、核心体系 二、IOC和AOP 1.控制反转&#xff08;IoC&#xff09; 2.面向切面编程&#xff08;AOP&#xff09; 三、整合持久层 1. JDBC模板&#xff08;JdbcTemplate&#xff09; 2. JPA与Hibernate 3. MyBatis 4. 事务管理 5. 数据源配置 6. 整合其他ORM框…

新手Pytorch入门笔记-transforms.Compose()

我使用的图片是上图&#xff0c;直接下载即可 transforms.Compose 是PyTorch中的一个实用工具&#xff0c;用于创建一个包含多个数据变换操作的变换对象。这些变换操作通常用于数据预处理&#xff0c;例如图像数据的缩放、裁剪、旋转等。使用transforms.Compose 可以将多个数据…

广工电工与电子技术实验报告-8路彩灯循环控制电路

实验代码 module LED_water (clk,led); input clk; output [7:0] led; reg [7:0] led; integer p; reg clk_1Hz; reg [7:0] current_state, next_state; always (posedge clk) begin if(p25000000-1)begin …

银行卡四要素API接口的验证流程

银行卡验证作为一种关键的安全机制&#xff0c;其运作原理是基于银联的实时数据库&#xff0c;通过将用户在交易过程中提供的银行卡元素信息&#xff08;如卡号、姓名、身份证号码以及手机号码等&#xff09;安全传输至发卡银行进行严谨核验。这一过程对于商家来说至关重要&…

「笔试刷题」:腐烂的苹果

一、题目 描述 给定一个 &#x1d45b;&#x1d45a; nm 的网格&#xff0c;其中每个单元格中可能有三种值中的一个 0 , 1 , 2。 其中 0 表示这个格子为空、1 表示这个格子有一个完好的苹果&#xff0c;2 表示这个格子有一个腐烂的苹果。 腐烂的苹果每分钟会向上下左右四个…

接口测试和Mock学习路线(上)

一、接口测试和Mock学习路线-第一阶段&#xff1a; 掌握接口测试的知识体系与学习路线掌握面试常见知识点之 HTTP 协议掌握常用接口测试工具 Postman掌握常用抓包工具 Charles 与 Fiddler结合知名产品实现 mock 测试与接口测试实战练习 1.接口协议&#xff1a; 需要先了解 O…

微服务组件-反向代理(Nginx)

微服务组件-反向代理(Nginx) Nginx 基本概念 1、nginx是什么&#xff1f; ①、Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器同时也提供了IMAP/POP3/SMTP服务。它是一款轻量级的Web服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&a…

Java | Leetcode Java题解之第50题Pow(x,n)

题目&#xff1a; 题解&#xff1a; class Solution {public double myPow(double x, int n) {long N n;return N > 0 ? quickMul(x, N) : 1.0 / quickMul(x, -N);}public double quickMul(double x, long N) {if (N 0) {return 1.0;}double y quickMul(x, N / 2);retu…