Gitflow基础知识

news2024/11/22 15:23:20

0.理想状态

现状

听完后的理想状态

没使用过 git

知道 git 是什么,会用 git 基础流程命令

用过 git,但只通过图形化界面操作

脱离图形化界面操作,通过 git 命令操作

会 git 命令

掌握 gitflow 规范,合理使用 rebase 和解决代码冲突问题


1.Git 的基础流程&命令


1.1 基础概念
工作区:代码生产基地,pycharm、vscode
暂存区:暂时存放修改/创建/删除的文件,工作区和本地仓库之间的中间商,最终目的:建立 git 索引,可以让 git 追踪文件
本地仓库:存储项目历史记录的地方,包含了项目的完整版本历史,包括所有提交的快照、分支、标签等
远程仓库:github、gitlab 等团队共享代码的中心存储库

1.2 基础流程

无标题-2023-06-27-1207 (1).png



比拟理解 git 基础流程

无标题-2023-06-27-2145.png



git 命令流程

# 修改/增加/删除文件....

# 查看工作区状态
git status

# 提交到暂存区
git add .
git add test.txt

# 提交到本地仓库
git commit -m "提交信息"


查看工作区状态


未追踪和已追踪的区别


已追踪的文件:在之前的提交中已存在或已通过git add命令添加到过暂存区的文件
未追踪的文件:一般就是新建的文件或者改名了的文件,还没有执行过git add的文件,所有 git 操作对未追踪文件均无效


提交至暂存区:

image.png



提交至本地仓库:

image.png



1.3 回滚操作


分三种场景:


1、工作区回滚
2、暂存区回滚
3、本地仓库回滚



工作区回滚:

git checkout .
git checkout test.txt
git checkout -- test.txt

会抛弃已有修改


暂存区回滚到工作区

git reset HEAD

image.png



本地仓库回滚暂存区:

image.png



本地仓库回滚工作区:

git reset --mixed HEAD~
git reset HEAD~
git reset --mixed HEAD~1
git reset --mixed $commit_id

image.png



~ 的含义


●  ~ 表示 HEAD 的父提交
●  HEAD~ 和 HEAD~1 等价
●  ~2表示 HEAD 的父提交的父提交,表示上上个提交


删除所有提交内容(慎用)


commit 信息和工作区内容都会被删除

image.png

image.png



1.4 切换分支

# 切换分支
git checkout 分支


# 创建分支
git branch
git checkout -b 分支



2.单分支模型


2.1 适用场景
个人佛系项目


2.2 基础流程
直接在 master 分支上开发

# 1. 拉取代码
git pull

# 2. 进行开发
...

# 3. 提交代码
git add .
git commmit -m "update"
git push



3.双分支模型


3.1 适用
        ●  生产/开发模型,一般分:master、devlop
        ●  个人规范项目,团队佛系项目
        ●  特性:master 分支只用作发布,devlop 用于开发

2.2 单人基础流程

# 1. master 拉取最新代码
git checkout master
git pull

# 2. 新版本开发,基于 master 拉 devlop 分支
git checkout -b devlop

# 3. 开发
...

# 4. 提交代码
git add .
git commmit -m "update"
git push

# 5. 合并代码
git rebase master
git checkout master
git merge devlop


2.3 多人基础流程

# 1. master 拉取最新代码
git checkout master
git pull

# 2. 新版本开发,同学A、B 基于 master 拉 devlop 分支
git checkout -b devlop

# 同学 A 开发
git checkout devlop
...

# 同学A提交代码
git add .
git commmit -m "update"
git push

# 同学 B 开发
git checkout devlop
...

# 同学 B 提交代码
git add .
git commmit -m "update"
git push

# 5. 合并代码
git rebase master
git checkout master
git merge devlop


4.标准 gitflow


4.1 gitflow 流程&基础教程
 

https://nvie.com/posts/a-successful-git-branching-model/

https://backlog.com/git-tutorial/cn/stepup/stepup2_8.html


4.2 分支规范

分支名

性质

说明

操作对象

master

永久

- 要保持与线上内容的强一致性,即任何变化都要触发线上部署

- 只接受 hotfix 和 release 的 MR

junjie

develop

永久

- 保存当前最新开发成果的分支 - 只接受 feature 的 PR,只能合并到 release - release 和 master 有变动时要及时 rebase 同步变化

所有开发同学

release-xxx

临时/永久

- 测试验收、灰度用的分支,必须保证功能完整性与一定的稳定性

- 只接受 develop 的 PR

- 只能从 develop 切,-只能合并到 master -

master 有变动时要及时 rebase 同步变化

junjie

feature-xxx

临时

- 提测前开发功能用的分支,理论上一个功能对应一个分支 - 只能从 develop 切,只能合并到 develop

所有开发同学

hotfix/xxx

临时

- 紧急修复线上 bug 的分支 -

只能从 master 切,只能合并到 master -

该分支可以手动部署到任意环境进行验证

所有开发同学

无标题-2023-06-26-2022.png


 

git checkout -b release-2023.3.p.5.18
# edit package.json, etc.
git commit -a -m "fix: bump release version to 2023.4.0"
git tag v2023.518.0
git push origin release-2023.3.p.5.18
git push --tag
# optionally trigger version publish immediately
git commit --allow-empty -m "fix: release version trigger"
git push origin release-2023.3.p.5.18

 

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

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

相关文章

ffmpeg安装测试(支持cuda支持SRT)

文章目录 背景安装ffmpeg直接下载可执行文件选择版本选择对应系统版本下载测试Linux下安装 查看支持协议以及编码格式 常见错误缺少 libmvec.so.1LD_LIBRARY_PATH 错误 GPU加速测试SRT服务器搭建下载srs5.0源码解压安装配置启动 SRT推流测试SRT播放测试 背景 在音视频开发测试中…

Kafka 分布式消息系统详细介绍

Kafka 分布式消息系统 一、Kafka 概述1.1 Kafka 定义1.2 Kafka 设计目标1.3 Kafka 特点 二、Kafka 架构设计2.1 基本架构2.2 Topic 和 Partition2.3 消费者和消费者组2.4 Replica 副本 三、Kafka 分布式集群搭建3.1 下载解压3.1.1 上传解压 3.2 修改 Kafka 配置文件3.2.1 修改z…

Java操作Elasticsearch的实用指南

Java操作Elasticsearch的实用指南 一、创建索引二、增删改查 一、创建索引 在ElasticSearch中索引相当于mysql中的表,mapping相当于表结构,所以第一步我们要先创建索引。 假设我们有一张文章表的数据需要同步到ElasticSearch,首先需要根据数据库表创建…

DisplayManagerService启动及主屏添加-Android13

DisplayManagerService启动及主屏添加-Android13 1、DisplayManagerService启动1.1 简要时序图 2、DEFAULT_DISPLAY主屏幕添加2.1 物理屏热插拔监听2.2 物理屏信息 3、默认屏幕亮度 1、DisplayManagerService启动 1.1 简要时序图 代码位置:frameworks/base/service…

git:基本操作(2)

目录 git操作(2) 1.版本回退 2.撤销修改 3.删除文件 git操作(2) 1.版本回退 git能够管理文件的历史版本,这也是版本控制器的重要能力,因此,git也提供了版本回退这样的功能。 执行git reset…

QT6聊天室项目 网络通信实现逻辑分析

实现逻辑 模块话网络通信设计分析 NetClient类 功能:负责与服务器进行通信httpClient:处理HTTP请求websocketClient:处理WebSocket通信 HTTP请求封装 设计请求和服务器响应的接口设计函数测试网络连接性设计处理的函数处理HTTP请求(后期实现…

C#/.NET/.NET Core推荐学习路线文档文章

前言 专门为C#/.NET/.NET Core推荐学习路线&文档&文章提供的一个Issues,各位小伙伴可以把自己觉得不错的学习路线、文档、文章相关地址分享出来🤞。 https://github.com/YSGStudyHards/DotNetGuide/issues/10 🏷️C#/.NET/.NET Cor…

智慧工地解决方案-2

### 1. 智慧工地解决方案概述 《智慧工地解决方案》针对传统工地的低效率和高风险问题,提出了一套集成现代技术的智能管理系统,以提升工地安防和生产效率。 ### 2. 工地现状与挑战 当前工地存在安全意识薄弱、管理粗放、环境污染监测困难等问题&#…

数据分析面试题:客户投保问题分析

目录 0 场景描述 1 数据准备 2 问题分析 2.1 计算小微公司的平均经营时长 2.2 计算小微公司且角色为投保人,保险起期在18年的总保费 2.3 假设,DWD_CUSTOMER_REL客户关联关系表中,存在部分客户保单数很多,部分客户保单数很少的情况,此时DWD_CUSTOMER_BASE表关联,程序…

Learn ComputeShader 10 HUD Overlay

前言: 1. HUD Overlay (Head-Up Display Overlay) 定义: HUD 是指游戏或应用程序中的一类叠加界面元素,通常显示在屏幕上,用于向用户提供实时信息。它通常显示关键信息而不会打断用户的主要活动或视线。应用场景: 常见于游戏、飞行模拟器和…

[项目][CMP][Page Cache]详细讲解

目录 1.申请内存2.释放内存3.框架 1.申请内存 当Central Cache向Page Cache申请内存时,Page Cache先检查对应位置有没有span,如果没有则向更大页寻找一个span,如果找到则分裂成两个 比如:申请的是4页page,4页page后面…

【MRI基础】TI反转时间概念

在磁共振成像 (MRI) 中,反转时间 (TI) 是反转恢复脉冲序列中的一个特定参数。它表示施加 180 度反转脉冲(将纵向磁化翻转到相反方向)与随后的 90 度激励脉冲(将磁化翻转到横向平面以创建 MR 信号)之间的时间间隔。 MRI…

常见概念 -- 电层业务调制谱宽与光层通道谱宽

本文介绍了“电层业务调制谱宽”和“光层通道谱宽”这两个概念,并结合网管的配置界面解释二者的配置方法。 电层业务调制谱宽 电层业务调制谱宽与光线路码型唯一相关,光线路码型确定后谱宽随之确定。 电层业务调制谱宽是指某业务信号的损耗谱从峰值下…

C++解决:求排列数

描述 输入两个整数m,n&#xff0c;求m个数字中选n个数的排列数。&#xff08;1<n<m<50&#xff09; 输入描述 两个正整数m和n。 输出描述 一个正整数表示排列数。 用例输入 1 6 5 用例输出 1 720 AC code #include<bits/stdc.h> using namespace s…

[linux 驱动]platform总线设备驱动详解与实战

目录 1 描述 2 结构体 2.1 bus_type 2.2 platform_bus_type 2.2.1 platform_match 2.2.2 platform_uevent 2.2.3 platform_dma_configure 2.2.4 platform_dev_pm_ops 2.3 platform_driver 2.4 platform_device 3 platform注册 3.1 platform_driver_register 3.1.1 …

【python因果推断库11】工具变量回归与使用 pymc 验证工具变量4

目录 Wald 估计与简单控制回归的比较 CausalPy 和 多变量模型 感兴趣的系数 复杂化工具变量公式 Wald 估计与简单控制回归的比较 但现在我们可以将这个估计与仅包含教育作为控制变量的简单回归进行比较。 naive_reg_model, idata_reg make_reg_model(covariate_df.assign…

C语言:刷题日志(1)

一.阶乘计算升级版 本题要求实现一个打印非负整数阶乘的函数。 其中n是用户传入的参数&#xff0c;其值不超过1000。如果n是非负整数&#xff0c;则该函数必须在一行中打印出n!的值&#xff0c;否则打印“Invalid input”。 首先&#xff0c;知道阶乘是所有小于及等于该数的…

halcon 自定义距离10的一阶导数幅图,摆脱sobel的3掩码困境

一&#xff0c;为什么要摆脱3的掩码 在处理图像的过程中&#xff0c;会用到平滑算子&#xff0c;很容易破坏边际&#xff0c;所谓的一阶导数sobel只计算掩码为3的差分&#xff0c;在幅度图分割中&#xff0c;往往是很难把握的。 举个例子-现在图像头平滑好了&#xff0c;缺陷…

【Python 千题 —— 算法篇】寻找两个正序数组的中位数

Python 千题持续更新中 …… 脑图地址 &#x1f449;&#xff1a;⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 在处理大规模数据时&#xff0c;我们经常需要对数据进行排序和分析。一个常见问题是如何高效地从两个正序数组中找出它们的中位数。…

今天又学到了——图编号关联章节号,QGIS下载文件存储的瓦片

记录教程来源&#xff1a;​​​​​​【Word图编号关联章节号】图片分章节 编号&#xff0c;图1-1、图2-1_哔哩哔哩_bilibili 上面链接这个实现的是这个效果&#xff1a; word自动目录及章节自动编号教程_哔哩哔哩_bilibili&#xff0c;这个的效果是自己设计多级列表&#xf…