git的版本控制流程

1、git是一款版本控制工具

例如我们常用的淘宝,每次升级,版本号就会加一。那么我们怎么控制版本号呢? --使用git。

2、最常使用的git指令

git add . 暂存
git commit -m"***" 提交到本地
git pull 将远程仓库代码下拉到本地
git push 提交到远程仓库

不建议使用【Git Bash】中去输入指令,使用idea 中以及集成好的三个按钮更加快捷方便。

0

从左到右依次是【git pull】拉项目、【commit】暂提交到本地、【git push】提交到远程。

注意:使用最左侧git pull拉项目时,会有Merge和Rebase两个选项,更推荐使用Rebase。Rebase的分支管理比较清晰。

merge:将在子分支的所有提交记录成一次commit,保留在记录中。(下图的E即为该记录)

rebase:不会保留commit记录,直接将分支中的内容排到master的记录之后。

0

merge操作后:

0

rebase操作后:

0

git Merge 和 git Rebase比较

  1. git merge 是将当前分支的提交放在merge分支的前面,而igit rebase是将当前分支的提交放到reabse分支的后面
  2. git merge会在最后增加一个merge的提交记录,而git rebase不会额外增加提交记录
  3. git merge合并之后提交记录是非常复杂的,而使用git rebase合并之后提交记录是线性的
  4. 使用git merge合并之后就不能再回退自己的提交代码了,如果回退则会降merge的内容一同回退了,而git rebase在合并之后可以继续回退自己的提交,而从rebase合进来的代码不受影响
  5. 很明显,dev开发分支适合使用git rebase,r而master主分支则非常适合git merge
  6. master主分支如果使用git rebase的后果是改变了提交历史,比如多人合作时后使用rebase的必须将前面使用过rebase的代码合到自己的前面,导致跟拉出来分支的时候提交历史不一样了,从而会带来各种比较痛苦的提交体验

3、切换分支

当我们本地有文件没有commit,去切换分支的时候(弹框选择Smart Checkout),这笔改动不会因为切换分支而变化。也就是说如果在没有提交的情况下切换分支,你写的东西不会改变。但如果你已经提交了这次改动,那么切换分支后被改动的地方就会切换成新分支的内容。

4、git版本控制流程

ci/cd是大多数公司选择的一套开发流程。

首先有四个特性分支

  • dev分支,对应开发环境(属于程序员开发的,怎么折腾都没事)
  • test分支,对应测试环境
  • pre/release分支,对应预生产环境
  • master分支,对应生产环境

0

  • 当开发新功能时从master拉取并创建一个以feature开头的新分支,例如叫做feature_20230301,这时代码与master相同,在此基础上进行开发。
  • 开发完之后将feature代码merge到dev分支,此时代码便处于开发环境。
  • 如果此时代码自己测试没问题,就将feature代码再merge到测试环境下,交给测试去测。
  • 测试环境通过后才能将feature代码merge到master分支。
  • 再将master代码merge到release预生产,这时你的代码就到达了预生产阶段,而这样做能够使预生产部署的代码来自master分支。
  • 当预生产验证没问题后就可以发布到生产了。

当开发下一个功能时再次从master拉取新分支,重复上边流程,形成一个循环。

注意:

1、所有的改动都是由feature这个小的开发分支去合并。

      为什么不由dev开发分支去合并?

      ----因为可能会出现自测不通过的分支提交到开发分支,那么这笔错误代码就会进入测试环境。

2、所有特性分支不允许push,能push只有feature这个小的开发分支。(方便代码review,merge在小组工作内是需要组长审批的)

hotfix分支

如果master分支去生产了,突然出现异常,需要紧急提一个 hotfix_xxxx 去修复这次报错。接下来按照公司需求,例如直接合并预生产,再合并到master。

0

总结

dev:开发环境,从feature去merge

test:测试环境,从feature去merge

pre:预生产环境,从master去merge,为了验证master代码

master:生产环境,从feature去merge

feature:开发分支----小功能,创建的时候,从master拉取

hotfix:bug修复分支,从master拉取

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

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

相关文章

threejs教程

应群友要求出了个小白教程,此外也有进阶教程。 替代之前老版本的教程。 教程案例: 新教程地址:https://www.wellyyss.cn/ys-course/#/ 教程使用的是react搭建的 高级教程主要是案例 年底比较忙估计要晚一点才整合。 后续的计划是&#xff1…

Leetcod面试经典150题刷题记录——数组 / 字符串篇

数组 / 字符串篇 1. 合并两个有序数组Python3排序法双指针法 2. 删除有序数组中的重复元素3. H 指数Python3排序法计数排序法二分查找 有个技巧,若想熟悉语言的写法,可以照着其它语言的题解,写目标语言的代码,比如有C/C的题解&…

HarmonyOS应用开发者基础认证考试(98分答案)

基于最近大家都在考这个应用开发者基础认证考试,因此出了一期,一样复制word里面搜索做,很快,当然good luck 判断题 Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件。一个应用可以包含一个或多个Ability。 正确(Tr…

应用于智慧社区的AI边缘计算盒子+AI算法软硬一体化方案

据统计,全国大约有45W个小区,监控高空抛物、治理乱扔垃圾、人员管理、烟火检测、占道、人流量检测、车型检测等;营造社区安全等需求跟每一个参与者息息相关,据法院公开资料显示,每年有1000宗以上跟高空抛物有关的各类案…

进程与线程的区别

作者简介: zoro-1,目前大二,正在学习Java,数据结构,mysql,javaee等 作者主页: zoro-1的主页 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 进程与线程的区别 进程线程进程与线…

HyperBDR云容灾v4.10.1发布,划重点:支持UCloud云平台自动化容灾+新增可灵活定义的备份策略

版本更新 HyperBDR云容灾v4.10.1版本来啦! 此次更新为大家带来了多个新功能,下面让我们来看看具体是哪些吧~ 01 策略管理新功能: 多时间段限速功能: 更加灵活的多个时间段限速选择,可以在创建策略时为不同的时间段设…

数字人可以为文化传播带来什么?

近日,由哈萨克斯坦驻华大使馆、中国外文局文化传播中心、中关村科幻产业创新中心联合发起的中哈青年友谊数字人怡漾和苏路(Сұлу)正式发布。其中,代表中方形象的数字人怡漾,不仅将成为中哈青年文化交流的标志与代言…

JavaScript WebAPI(三)(详解)

这次介绍一下webAPI中的一些知识: 回调函数 回调函数是指 如果将函数A做为参数传递给函数B时,我们称函数A为回调函数 例如: // 立即执行函数中传递的函数是一个回调函数 (function(){ console.log("我是回调函数") })(); // …

无分模块下Mybatis官方生成器

有无分模块其实对生成器生成代码没有影响&#xff0c;只是无分模块更加好理解&#xff0c;也就是添加插件和依赖&#xff0c;指定配置文件&#xff0c;运行插件即可。 添加依赖和插件 在插件处指定配置文件位置 <dependencies><!-- MyBatis核心依赖包 --><de…

汽车行驶不同工况数据

1、内容简介 略 28-可以交流、咨询、答疑 2、内容说明 汽车行驶不同工况数据 汽车行驶不同工况数据 ECE、EUDC、FTP75、NEDC、自定义 3、仿真分析 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/s/1AAJ_SlHseYpa5HAwMJlk1w 提取码&#xff1a;rvol

Visual Studio2022创建Windows服务程序

文章目录 Visual Studio2022创建Windows服务程序打开工具创建新项目创建成功重命名服务添加安装程序编写逻辑生成程序安装服务打开服务启动服务停止服务卸载服务修改项目配置重新生成安装服务启动服务 Visual Studio2022创建Windows服务程序 打开工具 创建新项目 创建成功 重命…

文件重命名不再困难:文件智能化重命名技巧,告别手动提升效率

在日常工作中&#xff0c;经常会遇到要修改文件名的场景。传统的文件重命名方法往往要手动输入新的文件名&#xff0c;不仅耗时而且容易出错。为了提高效率&#xff0c;可以采用一些智能化重命名的技巧&#xff0c;告别手动修改文件名的繁琐过程&#xff0c;让文件重命名变得更…

华为鸿蒙工程师成“热门”!最高年薪160万,只看技术不看年龄

引言&#xff1a; 今天&#xff0c;在互联网行业&#xff0c;超过30岁的工程师往往被认为是“码农”的生命周期终点。然而&#xff0c;华为鸿蒙系统的崛起&#xff0c;却再次给予了这些35岁以上的工程师们第二春的机会。国内一线互联网公司纷纷向鸿蒙系统靠拢&#xff0c;导致…

代码随想录算法训练营第五十二天【动态规划part13】 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

300.最长递增子序列 题目链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 求解思路 动规五部曲 1.dp数组及其下标定义&#xff1a; dp[i]表示包括i以前的以nums[i]结尾的最长递增子序列的长度 2.状态转移方程&#xff1a; 位置i的最长升序…

一文带你了解网络安全简史

网络安全简史 1. 上古时代1.1 计算机病毒的理论原型1.2 早期计算机病毒1.3 主要特点 2. 黑客时代2.1 计算机病毒的大流行2.2 知名计算机病毒2.3 主要特点 3. 黑产时代3.1 网络威胁持续升级3.2 代表性事件3.3 主要特点 4 高级威胁时代4.1 高级威胁时代到来4.2 著名的APT组织4.3 …

【note: This is an issue with the package mentioned above, not pip.】

安装gym时出现问题&#xff0c;note: This is an issue with the package mentioned above, not pip. 报错原因&#xff1a; 缺失了某些依赖模块&#xff0c;所以安装报错。 Collecting package metadata (current_repodata.json): done Solving environment: failed with in…

使用 mtcnn 和 facenet 进行人脸识别

一、前言 人脸识别目前有比较多的应用了&#xff0c;比如门禁系统&#xff0c;手机的人脸解锁等等&#xff0c;今天&#xff0c;我们也来实现一个简单的人脸识别。 二、思维导图 三、详细步骤 3.1 准备 3.1.1 facenet 权重文件下载 下载地址&#xff1a;https://drive.goo…

高等数学中的近似计算

今天来总结一下同济版高数中有关近似计算的例子&#xff0c;总的来说是如下的三种&#xff0c;有遗漏的话可以在评论区指出~ 目录 一.微分在近似计算中的应用 二.全微分在近似计算中的应用 三.函数的幂级数展开在近似计算的应用 一.微分在近似计算中的应用 本质原理是&am…

机器学习的复习笔记3-回归的细谈

一、回归的细分 机器学习中的回归问题是一种用于预测连续型输出变量的任务。回归问题的类型和特点如下&#xff1a; 线性回归&#xff08;Linear Regression&#xff09;&#xff1a;线性回归是回归问题中最简单的一种方法。它假设自变量与因变量之间存在线性关系&#xff0c…

SpringBoot+Redis获取电脑信息

获取电脑信息 测试 System.getProperties(); System: 是Java中的一个内置类&#xff0c;用于提供与系统相关的功能和信息。这个类中包含了一些静态方法和常量&#xff0c;可以让您方便地访问和操作系统级别的资源。 getProperties(): 是一个静态方法&#xff0c;它返回一个表示…