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

 

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

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

相关文章

spark sql 优化

1. 配置 比例内存 : core 1:2 2. 增加 core 数可以增加 执行任务的 线程数 3. 计算有大表,并发生shuffle 时,生成的任务数是由spark.sql.shuffle.partitions 决定的,所以针对大表shuffle ,要增加spark.sql.shuffle.partitio…

C++笔记20•数据结构:哈希(Hash)•

哈希 1.无序的关联式容器(unordered_map&unordered_set) unordered_map与unordered_set几乎与map与set是一样的,只是性能unordered_map与unordered_set比map与set更优一些。还有就是unordered_map与unordered_set是无序的,…

差异基因富集分析(R语言——GOKEGGGSEA)

接着上次的内容,上篇内容给大家分享了基因表达量怎么做分组差异分析,从而获得差异基因集,想了解的可以去看一下,这篇主要给大家分享一下得到显著差异基因集后怎么做一下通路富集。 1.准备差异基因集 我就直接把上次分享的拿到这…

服务器流量监控工具vnStat的简单使用以及关于Linux的软中断信号(signal)的一点内容

一、服务器流量监控工具vnStat的简单使用 vnStat是为Linux和BSD设计的基于控制台的网络流量监控工具,通过它可以非常方便在命令行查看流量统计情况。它可以保留某个或多个所选择的网络接口的网络流量日志。为了生成日志,vnStat使用内核提供的信息。换句话…

misc流量分析

一、wireshark语法 1、wireshark过滤语法 (1)过滤IP地址 ip.srcx.x..x.x 过滤源IP地址 ip.dstx.x.x.x 过滤目的IP ip.addrx.x.x.x 过滤某个IP (2)过滤端口号 tcp.port80tcp.srcport80 显示TCP的源端口80tcp.dstport80 显示…

Python和C++多尺度导图

🎯要点 热化学属性观测蒙特卡罗似然比灵敏度分析时间尺度上动力学化学催化反应动力学建模自动微分电化学分析模型反应动力学数学模型渔业生态不确定性模型敏感性分析空间统计地理模型分析技术多维数据表征实现生成艺术图案流苏物体长度比,面积比和复杂度…

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络(CNN)是深度学习中的核心技术之一,擅长处理图像数据。CNN通过卷积层提取图像的局部特征,在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征,最终实现精确的…

Django+Vue3前后端分离学习(二)(重写User类)

一、重写User类: 1、首先导入User类: from django.contrib.auth.models import User 2、然后点在User上,按住ctrl 点进去,发现 User类继承AbstractUser Ctrl点进去AbstractUser,然后将此方法全部复制到自己APP的mo…

3 html5之css新选择器和属性

要说css的变化那是发展比较快的,新增的选择器也很多,而且还有很多都是比较实用的。这里举出一些案例,看看你平时都是否用过。 1 新增的一些写法: 1.1 导入css 这个是非常好的一个变化。这样可以让我们将css拆分成公共部分或者多…

WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率

介绍 随着互联网数据的爆炸式增长,爬虫技术成为了获取信息的重要工具。在实际应用中,如何提升浏览器自动化的效率是开发者常常面临的挑战。Chrome DevTools Protocol(CDP)与Selenium WebDriver相结合,为浏览器自动化提…

还不会剪音乐?试试这四款在线音频剪辑

音频剪辑很多人都没有接触过。其实这并不是一个难事,我们甚至可以用一些简单的工具来给自己做个简单的BGM,最近我尝试了几款不同的音频剪辑工具。今天就来跟大家分享一下我的使用体验,看看哪款工具更适合你的需求。 一、福昕音频剪辑 网址&…

Oracle rman 没有0级时1级备份和0级大小一样,可以用来做恢复 resetlogs后也可以

文档说了 full backup 不能 用于后续的level 1,没说level 1没有level 0 是不是level 1就是level 0? GOAL What are incremental backups? Why are archivelogs still required to recover a database from an online incremental backup? Discuss th…

python学习13:对excel格式文件进行读写操作

读取excel的话需要下载第三方库: 常用的库:xlrd(读),xlwt(写),xlutils,openpyxl[-----pip install xxx-------] 这里推荐openpyxl pip install openpyxl excel读取的基本操作 # 2)基本操作: # 2.1)打开文件,获取工作簿 filename rD:\stdutyZiLiao\pythoneProje…

动态化-鸿蒙跨端方案介绍

一、背景 👉 华为在2023.9.25官方发布会上宣布,新的鸿蒙系统将不再兼容安卓应用,这意味着,包括京东金融APP在内的所有安卓应用,在新的鸿蒙系统上将无法运行,需要重新开发专门适用于新鸿蒙系统的专版APP。 …

日语输入法平假名和片假名切换

在学日语输入法的时候,我们在使用罗马音输入的时候,在进行平假名和片假名切换: 1、使用电脑在打字,日语输入法切换的时候使用 Shift Alt 如果日语输入法显示为 A 需要切换为 あ的话可以按Caps Lock键 。(相当于中文…

zblog自动生成文章插件(百度AI写作配图,图文并茂)

最近工作比较忙,导致自己的几个网站都无法手动更新,于是乎也想偷个懒把,让AI帮忙打理下自己的网站。我接触chatgpt等AI工具还是比较早了,从openai推出gpt3.5就一直在用,说实话,开始的时候用AI自动更新网站还…

「C++系列」日期/时间

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;人工智能教程 文章目录 一、日期/时间1. C标准库&#xff08;C20之前&#xff09;<ctime>库中的关键组件&#xff1a; 2…

lnmp - tp6.0的安装和简单使用

概述 使用了很长时间的Mac M2芯片的电脑在之前使用虚拟机之前总有一些bug不是那么好用&#xff0c;周末之余重新安装了一下centos虚拟机&#xff0c;搭建了lnmp环境&#xff0c;打算自己挤时间&#xff0c;做一点应用&#xff0c;作为一次新的小小的尝试。 安装&更新 ce…

OCC开发_变高箱梁全桥建模

概述 上一篇文章《OCC开发_箱梁梁体建模》中详细介绍了箱梁梁体建模的过程。但是&#xff0c;对于实际桥梁&#xff0c;截面可能存在高度、腹板厚度、顶底板厚度变化&#xff0c;全桥的结构中心线存在平曲线和竖曲线。针对实际情况&#xff0c;通过一个截面拉伸来实现全桥建模显…

算法复杂度 —— 数据结构前言、算法效率、时间复杂度、空间复杂度、常见复杂度对比、复杂度算法题(旋转数组)

目录 一、数据结构前言 1、数据结构 2、算法 3、学习方法 二、 算法效率 引入概念&#xff1a;算法复杂度 三、时间复杂度 1、大O的渐进表示法 2、时间复杂度计算示例 四、空间复杂度 计算示例&#xff1a;空间复杂度 五、常见复杂度对比 六、复杂度算法题&…