Git-flow流

article/2025/7/2 0:56:46

Git

  • git是版本控制软件,一般用来做代码版本控制

  • github是一个免费版本控制仓库是国内外很多开源项目的集中地,其本体是一个git服务器

  • Git初始化操作

git init   初始化仓库
git status   查看当前仓库的状态
git add  .   将改动的文件加到暂存区
git commit -m  把暂存区的内容移往版本库(repository)  
git commit  --amend -m'描述'  修改最近一次提交commit信息
git commit  --amend --no-edit 把某个改动并入最近一次的commit
​
  • 添加git相关信息

git config --global user.email "123123@163.com"
git config --global user.name "JeeyWu"
  • git日志操作

git  log 查看提交记录
git  log 文件名 查看文件相关的提交记录 
git  log --author="JeeyWu"
git  log  --grep="新增用户查询列表接口"   查找commit信息中是否含有某些关键字
​
​
  • .gitignore文件(忽略被git管理的文件)

  • 添加远程仓库

git  remote add  <name><url> 本地仓库和远端仓库关联   git remote add origin https://gitee.com/t7uf7tu/one12312.git
git  push  -u  origin   "master"  把本地仓库主分支推送到远程仓库主分支  git push -u origin "master"
​
  • 从远程仓库拉取代码

git clone  <url>
  • git拉取和推送

git push  origin   master  推送到远端仓库
git pull  origin    master  把远端最新的改动拉取下来
  • git 分支操作

git branch  查看分支
git branch  Jeeny_wu  创建分支
git branch  -m  old-name  new-name  修改分支的名字
git branch  -d 分支名 删除本地分支
git push origin -delete 分支名 删除远端的分支
​
git checkout  分支名  切换分支
git checkout -b 分支名 切换分支或者切换创建分支
​分支合并master   merge xiaohong  快转模式  (指向同一个commit)​
  • ort策略

同时并行开发两个任务task-a和task-b,task-a、task-b和master分支指向同一个commit。切换到task-a分支提交一些修改并commit,之后切换到task-b分支提交一些修改并commit。此时无论是task-a合并taskb,亦或是task-b合并task-a,在这种情况下,git会生成一个额外的commit,这个commit会指向两个commit(task-a和task-b的commit),明确地标记是来自哪两个分支

  • rebase变基

    a分支和b分支都是从master分出去的,且各自做了改动并commit。a和b都是从master分出来的,它们的base都是master. 切换到a分支,执行git rebase b命令。意思是使用b分支作为a分支的新的参考基准。 rebase合并方式和merge方式的区别:使用rebase方式合并分支,git不会在做出一个专门用来合并的commit.

  • 版本回退

    git reset  commit 识别码  --hard 回退版本 (使用git reflog命令 查看之前的commit识别码)
    ​
    git reflog  查看之前的commit识别码
    • 合并冲突

不是改到同一个文件就一定会发生冲突,但改到同行就会出现冲突 无论是使用merge还是使用rebase进行合并,都有可能产生冲突

  • git flow工作流

    简介:Gitflow工作流程围绕项目发布定义了严格的分支模型,它为管理更大规模的项目提供了坚实的框架。除了用于功能开发的分支,它还使用独立的分支进行发布前的准备、记录以及后期维护

    用于记录历史的分支:Gitflow使用两个分支来记录项目开发的历史,而不是使用单一的master分支。在Gitflow流程中,master只是用于保存官方的发布历而develop分支才是用于集成各种功能开发的分史,支。使用版本号为master上的所有提交打标签(tag)也很方便。

用于功能开发的分支:每一个新功能的开发都应该名自使用独立的分支。为了备份或便于团队之间的合作,这种分支也可以被推送到中央仓库。但是,在创建新的功能开发分支时,父分支应该选择develop(而不是master)。当功能开发完成时,改动的代码应该被合并(merge)到develop分支。功能开发永远不应该直接牵扯到master。

用于功能开发的分支:每一个新功能的开发都应该各自使用独立的分支。为了备份或便于团队之间的合作,这种分支也可以被推送到中央仓库。但是,在创建新的功能开发分支时,父分支应该选择develop(而不是master)。当功能开发完成时,改动的代码应该被合并(merge)到develop分支。功能开发永远不应该直接牵扯到master。

用于发布的分支:一旦develop分支积聚了足够多的新功能(或者预定的发布日期临近了),你可以基于develop分支建立一个用于产品发布的分支。这个分支的创建意味着一个发布周期的开始,也意味着本次发布不会再增加新的功能--在这个分支上只能修复bug做一些文档工作或者跟发布相关的任务。在一切准备就绪的时候这个分支会被合并入master,并且用版本号打上标签。另外,发布分支上的改动还应该合并入develop分支--在发布周期内develop分支仍然在被使用(一些开发者会把其他功能集成到develop分支)。使用专门的一个分支来为发布做准备的好处是,在一个团队忙于当前的发布的同时,另一个团队可以继续为接下来的一次发布开发新功能。

用于维护的分支:发布后的维护工作或者紧急问题的快速修复也需要使用一个独立的分支。这是唯-一种可以直接基于master创建的分支。一旦问题被修复了,所做的改动应该被合并入master和develop分支或者用于当前发布的分支)。在这之后,master上还要使用更新的版本号打好标签。

  • 基于develop派生出release预发布分支用于测试bug修正

  • 修复完成release分支合并入master分支喝develop分支

  • 再将发布分支删除

  • 基于master分支打标签

    git  tag -a 标签名 -m  "标签信息描述"

    把本地标签提交到远端仓库

    git push origin --tags

    用户发现bug 为了解决这个问题,小红基于master创建了一个用于维护的分支(hotfix)。她在这个分支上修复了那个bug,然后把改动的代码直接合并入master

    跟用于发布的分支一样,在维护分支上的改动也需要合并入develop分支

  • 最后可以将维护分支删除


http://www.hkcw.cn/article/xZjkvxLNsj.shtml

相关文章

LeetCode-链表操作题目

虚拟头指针&#xff0c;在当前head的前面建立一个虚拟头指针&#xff0c;然后哪怕当前的head的val等于提供的val也能进行统一操作 203移除链表元素简单题 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(…

mybatisplus的总结

一.通用Mapper 1.首先创建一个接口与实体类 Data TableName("user") public class User { TableId(value "id", type IdType.AUTO) private Long id; TableField("name") private String name; TableField("age") pri…

UE5 创建2D角色帧动画学习笔记

UE5 创建2D角色帧动画 1.对导入的角色所有帧动画图片Apply paper2d Texture Setting 2.创建图片精灵 Create Sprite 3.全选创建的图片精灵&#xff0c;右键点击 Create Flipbook(创建图像序列视图) 4.双击此paper Flipbook 即可预览该角色帧动画 UE5 2D角色帧动画 Frames P…

MyBatisPlus--条件构造器及自定义SQL详解

条件构造器 在前面学习快速入门的时候&#xff0c;练习的增删改查都是基于id去执行的&#xff0c;但是在实际开发业务中&#xff0c;增删改查的条件往往是比较复杂的&#xff0c;因此MyBatisPlus就提供了一个条件构造器来帮助构造复杂的条件。 MyBatisPlus支持各种复杂的wher…

《类和对象--继承》

引言&#xff1a; 在刚接触C的时候&#xff0c;我们首先学习了有关类和对象的一些基础知识&#xff0c;今天我们就要接着学习类和对象的另一板块–继承。 一&#xff1a;继承的概念和定义 1. 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手…

利用R语言生成区试中随机区组试验设计——多点

目前&#xff0c;区试要求对照不得位于区组的首尾小区&#xff0c;且不同区组的相邻小区位置不得出现同一品种。基于这一要求&#xff0c;编写了R语言的随机区组试验设计。此函数可用于多个试验点试验设计生成情况。 rcbd函数有6个参数&#xff1a; local_name为试验点名称的向…

pytorch基本运算-范数

引言 前序学习进程中&#xff0c;已经对pytorch基本运算有了详细探索&#xff0c;文章链接有&#xff1a; 基本运算 广播失效 乘除法和幂运算 hadamard积、点积和矩阵乘法 上述计算都是以pytorch张量为运算元素&#xff0c;这些张量基本上也集中在一维向量和二维矩阵&#x…

STM32G4 电机外设篇(四)DAC输出电流波形 + CAN通讯

目录 一、STM32G4 电机外设篇&#xff08;四&#xff09;DAC输出电流波形 CAN通讯1 DAC输出电流波形1.1 STM32CubeMX配置和Keil代码1.2 实验现象 2 CAN/CANFD通讯2.1 STM32CubeMX配置和Keil代码2.2 实验现象 附学习参考网址欢迎大家有问题评论交流 (* ^ ω ^) 一、STM32G4 电机…

电子电气架构 --- 后轮转向的一点事情

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 做到欲望极简&#xff0c;了解自己的真实欲望&#xff0c;不受外在潮流的影响&#xff0c;不盲从&#x…

web复习(四)

盒子模型的例题 例一&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <title>咖啡店banner</title> <style type"text/css"> /*将页面中所有元素的内外边距设置为0*/ *{ padding:0; margin…

Cesium添加点线面(贴地)

// 创建一个图元集合const primitives viewer.scene.primitives.add(new Cesium.PrimitiveCollection());1、点上图 // 定义点的位置&#xff08;中国不同城市的经纬度&#xff09;const points [{ lon: 116.4074, lat: 39.9042, name: "北京" },{ lon: 121.4737, …

技术文档:MD520系列变频器配套杭州干扰净GRJ9000S系列EMC电源滤波器安装指南

1. 引言 MD520系列通用变频器是汇川技术有限公司&#xff08;Inovance&#xff09;设计的高性能电流矢量控制交流驱动器&#xff0c;广泛应用于纺织、造纸、机床、包装、食品、风机和水泵等行业。为确保其在复杂电磁环境中稳定运行并不对其他设备造成干扰&#xff0c;手册推荐…

【基于阿里云搭建数据仓库(离线)】DataWorks中删除节点

1.右击想要删除的节点&#xff0c;点击删除 2. 显示如下界面&#xff0c;点击“去下线” 3.进入到如下界面&#xff0c;点击红色框出来的 4.重新右击想要删除的目标节点&#xff0c;点击删除 5. 点击去下线 6.点击开始下线 7.点击“确认发布” 8.点击“确认” 9.点击“重新删除…

【GESP真题解析】第 6 集 GESP 三级 2023 年 9 月编程题 1:小杨的储蓄

大家好,我是莫小特。 这篇文章给大家分享 GESP 三级 2023 年 9 月编程题第 1 题:小杨的储蓄。 题目链接 洛谷链接:B3867 小杨的储蓄 一、完成输入 根据输入格式的描述,输入有两行,第一行为两个整数 N 和 D,数据范围: 1 ≤ N ≤ 1000 1\le N \le 1000 1≤N≤1000, 1 …

MySQL-多表关系、多表查询

一. 一对多(多对一) 1. 例如&#xff1b;一个部门下有多个员工 在数据库表中多的一方(员工表)、添加字段&#xff0c;来关联一的一方(部门表)的主键 二. 外键约束 1.如将部门表的部门直接删除&#xff0c;然而员工表还存在其部门下的员工&#xff0c;出现了数据的不一致问题&am…

Arbitrum Stylus 合约实战 :Rust 实现 ERC721

在上一篇中&#xff0c;我们学习了如何在 stylus 使用 rust 编写 ERC20合约&#xff0c;并且部署到了Arbitrum Sepolia &#xff0c;今天我们继续学习&#xff0c;如何在 stylus 中使用 rust 实现 ERC721 合约&#xff0c;OK, 直接开干&#xff01; 关于环境准备&#xff0c;请…

超声波测距三大算法实测对比

前言 声波测距的数据包含很大噪声&#xff0c;即使障碍物&#xff08;以纸板为例&#xff09;静止&#xff0c;测量距离数据也上下跳变&#xff0c;需要通过数据滤波算法降低测量误差&#xff0c;主要滤波算法有平均值滤波和卡尔曼滤波。 在超声波测距中&#xff0c;无滤波、…

【2025年5月】AI生产力再探再报:各家智能体持续内卷,前沿应用不断细分

前言 2025年5月的个人学习笔记。 一、工具尝鲜快报&#xff1a;初探感觉好玩&#xff0c;但还未深入的工具。 二、生产力军火库&#xff1a;开箱即用的神器&#xff0c;以及一些好用的技巧。 三、前沿动态速递&#xff1a;一些可反复品读的优质资料和个人感兴趣的新工具。 文章…

ubuntu22.04安装megaton

前置 sudo apt-get install git cmake ninja-build generate-ninja安装devkitPro https://blog.csdn.net/qq_39942341/article/details/148388639?spm1001.2014.3001.5502 安装cargo https://blog.csdn.net/qq_39942341/article/details/148387783?spm1001.2014.3001.5501 …

shell脚本的条件测试

命令结果判定 && &#xff1a;在命令执行后如果没有任何报错时会执行符号后面的动作 || &#xff1a;在命令执行后如果命令有报错会执行符号后的动作 条件判断 # test 语句 # []&#xff0c;[[]]&#xff0c;(()) 语句 # [[]] 可以支持的表达式更多&#xff0c;是最常…