Gitflow基础知识

2024-09-07 22:28
文章标签 基础知识 gitflow

本文主要是介绍Gitflow基础知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

 

这篇关于Gitflow基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146333

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

计组基础知识

操作系统的特征 并发共享虚拟异步 操作系统的功能 1、资源分配,资源回收硬件资源 CPU、内存、硬盘、I/O设备。2、为应⽤程序提供服务操作系统将硬件资源的操作封装起来,提供相对统⼀的接⼝(系统调⽤)供开发者调⽤。3、管理应⽤程序即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。4、操作系统内核的功能(1)进程调度能⼒: 管理进程、线

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

关于回调函数和钩子函数基础知识的整理

回调函数:Callback Function 什么是回调函数? 首先做一个形象的比喻:   你有一个任务,但是有一部分你不会做,或者说不愿做,所以我来帮你做这部分,你做你其它的任务工作或者等着我的消息,但是当我完成的时候我要通知你我做好了,你可以用了,我怎么通知你呢?你给我一部手机,让我做完后给你打电话,我就打给你了,你拿到我的成果加到你的工作中,继续完成其它的工作.这就叫回叫,手机

有关机械硬盘的基础知识

1,机械硬盘的品牌   目前市场中常见的笔记本电脑的机械硬盘品牌主要有希捷、西部数据、三星等。   2,机械硬盘的容量   硬盘容量,即硬盘所能存储的最大数据量。虽然笔记本电脑硬盘的容量会因单位密度的提升而增加,不过和台式电脑的大容量比起来,笔记本电脑硬盘的容量仍然落后许多。笔记本电脑的硬盘除了对磁盘有体积较小和数量较少的要求之外,对功耗、耐用程度、抗震性及成本等的考虑,也让笔记

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工

计算机基础知识复习9.6

点对点链路:两个相邻节点通过一个链路相连,没有第三者 应用:PPP协议,常用于广域网 广播式链路:所有主机共享通信介质 应用:早期的总线以太网,无线局域网,常用于局域网 典型拓扑结构:总线型 星型(逻辑总线型) 介质访问控制  静态划分信道 信道划分介质访问控制 频分多路复用FDM 时分多路复用TDM 波分多路复用WDM 码分多路复用CDM 动态分配信道 轮询访问介质访问控

[JAVA基础知识汇总-1] 创建线程的几种方式

文章目录 1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 线程池 可以认为有四种方式,也可以认为有一种,因为都跟Runnable接口有关 1. 继承Thread类 代码 public class Thread1ExtendsThread extends Thread {// public Thread1(String n

电工基础知识

1、电工常用的电工工具 2、PPR常用配件名称 3、铜芯导线如何选择线鼻子 4、丝锥孔径对照表 5、三相电机接线方法_星形_角型 6、内六角螺铨尺寸表 7、常用螺母规格尺寸 8、常用螺栓螺母名称 9、灭火器分类使用 10、电缆颜色使用代码 11、电缆铜铝鼻子 12、空气开关