git使用“保姆级”教程4——版本回退及分支讲解
一、版本回退
1、历史回退(版本回退)——命令行git reset --hard 版本编号
- 注意:当前命令会让
工作区
的内容发生改变,可以理解成历史区(master分支)
直接回到工作区
- 比如:从
版本4
回到版本3
,则工作区
只会显示版本3
的代码内容
1.1、指令解释
// 回退到上一次提交的版本 => 在Head(当前指针指向的位置)后添加一个^$ git reset --hard HEAD^// 回退到上上次提交的版本 => 在Head后添加两个^,依此类推$ git reset --hard HEAD^^// 这里的~2 等于 ^^写法,比较简洁 $ git reset --hard HEAD~2 // 后面还可以接"标识符"回到任意版本 => "标识符"来自提交版本时,生成的编号的前6位,可以通过`git log`查看$ git reset --hard 7016321
1.2、图示说明
1.3、业务带入
- 创建4次提交版本记录——此时
HEAD指针
指向第4次的版本记录
- 回退到第三次的
版本记录
- 查看
版本记录
2、查看本地库所有的操作记录——命令行git reflog
- 查看所有的
本地库
的操作记录
- 找到对应
版本号
的标识符
- 回退到想回退的
版本记录
——从版本3回到版本4
- 查看
工作台
3、历史回退(不修改工作区内容)——命令行git reset --soft
注意
:当前命令不会让工作区
的内容消失,可以理解成版本回退到暂存区
比如
:从版本5
回到版本3
,工作区的代码不会消失作用
:
- 当版本注释写错时,可以选择这种回退方式,让代码放在暂存区后,再次重新提交到历史区,此时,可以重新补充版本注释内容
- 当版本提交后,发现有bug需要修复时,可以通过这种方式,将提交后的代码撤回到暂存区,等修复bug后,再次将代码提交到暂存区,此时,之前退回来的代码会和这次修复后的代码进行合并,最后,将两份合并后的代码再一起提交到历史区,这样提交记录会很清晰
- 注意:如果此时有,第二个页面功能已经开始写了,需要先提交当前需要修复的内容,不要再用全部上传了!
回退一个版本
——从版本5回到版本3
- 查看工作区 ——代码还在,可以理解回退到
暂存区
了
- 查看
版本记录
——记录已经没了
4、git revert与git reset的区别
4.1、图解
4.2、注意
// 1、注意:这里可以不加 --hard $ git revert HEAD
// 2、注意:和reset不同,revert这里的HEAD和reset差了一个版本,也就是:revert HEAD是回到上一个版本,revert HEAD^是回到上上个版本
4.3、业务带入
- 输入
命令行
回退到上个版本
- 进入当前页面,输入
i
进行注释编辑,再输入esc
退出,最后输入:wq
回车
- 查看
版本记录
——新增了一条记录信息
- 查看
工作区
变化——代码内容已经回退成功了
4.4、对比解释
git reset
:- 回滚到对应的
commit-id(提交记录)
- 相当于是:删除了
commit-id
以后的所有的提交,并且不会产生新的commit-id记录
- 如果要推送到
远程服务器
的话,reset
这种回退方式会比较危险,因为需要强制推送-f
,有可能覆盖团队内别人的代码,此时,比较建议使用git reset --soft
这种回退方式再次提交
- 回滚到对应的
git revert
:- 用来撤销某个特定提交的更改,但它不会直接修改或删除之前的提交记录。
- 它会新建一个提交,把之前那个提交的改动“反向操作”一下
- 比如:如果之前的提交是添加了某些代码,
revert
会新建一个提交
来删除这些代码
- 比如:如果之前的提交是添加了某些代码,
- 如果要推送到
远程服务器
的话,就是普通的操作git push
就好了
二、版本回退
1、初识分支
解释
:- git分支就是:我们把
整个文件夹
分成一个个独立的区域
,比如:- 在开发登录功能时,可以放在login分支下进行开发;
- 开发列表功能时,可以放在list分支下进行开发;
- 大家互不干扰,
每个功能
都是一个独立的功能分支
,开发完成后,再合并到主分支中,分支没有用的时候,也可以删掉,这样开发就会好很多
- git在
初始化时
,会自动生成master主分支
,同时,我们也可以自己开辟出独立分支
- git分支就是:我们把
作用
:- 在应对
团队协作
中,测试功能时不阻塞其它功能的开发进程 - 在
单兵作战
中,方便修复bug,不影响其它功能的正常开发
- 在应对
解释
:
2、创建分支
- 创建分支使用——
git branch 分支名称
指令
- 查看
当前分支
情况——git branch
指令- 可以看到,当前有两个分支:一个是master,一个是list
- 前面带有* 号,且有高亮显示的分支,表示:当前所处的分支
3、切换分支
解释
:- 对列表功能的开发要移动到list分支去完成,所以需要使用git checkout 分支名称进行切换
- 注意:切换分支之前,一定要将当前分支的内容提交!否则在别的分支上会出现当前分支代码,这不对!
命令行:
:
// 切换到 list 分支$ git checkout list
后续
:- 后续在该分支上进行列表功能的开发,开发完成后,在当前分支上进行提交,提交后我们再进行分支切换
- 发现master上还是最初始的状态,而list分支上有我们新写的列表功能的代码,此时按照分支把所有功能都开发完毕后,把所有代码都合并到master主分支上就可以了
图示
:
4、合并分支
解释
:- git中的合并分支,只能是:把别的分支内容合并到自己的分支上
- 使用的指令是:
git merge
// 切换到 master 分支$ git checkout master// 把 list 的内容合并到自己的分支$ git merge list
后续
:- 这时,刚才在list分支上开发的内容,就都来到了master主分支上
- 如果有多个分支的话,那么所有的最后分支都合并到master分支上时,我们的主分支上就有完整网站的所有页面,各个分支上都是单独的页面和功能
图解
:
5、删除分支
解释
: 此时开辟的list分支
就没有什么用了,也就可以删除分支
了步骤及命令行
:- 先切换到别的分支
- 使用指令
git branch -d 分支名称
进行删除
// 先切换到别的分支$ git checkout master// 删除 list 分支 => -d的意思是delete的缩写$ git branch -d list
图解
相关文章:
git使用“保姆级”教程4——版本回退及分支讲解
一、版本回退 1、历史回退(版本回退)——命令行git reset --hard 版本编号 注意:当前命令会让工作区的内容发生改变,可以理解成历史区(master分支)直接回到工作区比如:从版本4回到版本3,则工作区只会显示版本3的代码内容 1.1、指…...
spring cache,Spring data redis
本项目使用Redis存储缓存数据,如何通过Java去访问Redis? 常用的有Jedis和Lettuce两个访问redis的客户端类库 ,Jedis和Lettuce都是redis提供的。其中Lettuce的性能和并发性要好一些,Spring Boot 默认使用的是 Lettuce 作为 Redis …...
10.数据结构与算法-线性表的应用(线性表与有序表的合并)
线性表的合并 有序表的合并 顺序表 链表...
GAN|对抗| 生成器更新|判别器更新过程
如上图所示,生成对抗网络存在上述内容: 真实数据集;生成器;生成器损失函数;判别器;判别器损失函数;生成器、判别器更新(生成器和判别器就是小偷和警察的关系,他们共用的…...
day01——登录功能
逻辑: 前端将登录信息通过报文的形式,发送给后端。后端进行登陆验证 2.1 根据接受的用户名,查询数据表。 若不存在该用户的记录,返回用户不存在。 若用户存在,判断数据库中的密码和接收的是否一致,不一致则…...
Flutter中使用FFI的方式链接C/C++的so库(harmonyos)
Flutter中使用FFI的方式链接C/C库(harmonyos) FFI plugin创建和so的配置FFI插件对so库的使用 FFI plugin创建和so的配置 首先我们可以根据下面的链接生成FFI plugin插件:开发FFI plugin插件 然后在主项目中pubspec.yaml 添加插件的依赖路径&…...
【C++】二义性
在C中,二义性(ambiguity)通常指的是编译器无法确定使用哪个函数、变量或类成员的情况。这种不确定性通常是由于继承和多态特性导致的。下面是一些常见的产生二义性的场景以及如何解决它们的方法: 1. 多重继承中的二义性 当一个类…...
高并发内存池(五):ThreadCache、CentralCache和PageCache的内存回收机制、阶段性代码展示和释放内存过程的调试
目录 ThreadCache的内存回收机制 补充内容1 补充内容2 补充内容3 补充内容4 ListTooLong函数的实现 CentralCache的内存回收机制 MapObjectToSpan函数的实现 ReleaseListToSpans函数的实现 PageCache的内存回收机制 补充内容1 补充内容2 ReleaseSpanToPageCache函…...
STL之stackqueue篇(上)探索C++ STL中的Queue与Stack——构建数据处理的基础框架
文章目录 前言一、stack1.1 定义与基本概念1.2 底层容器1.3 成员函数1.4 使用示例1.5 注意事项1.6 应用场景 二、queue2.1 定义与基本概念2.2 底层容器2.3 成员函数2.4 使用示例2.5 注意事项2.6 应用场景 前言 本文旨在深入探讨C STL中的queue与stack容器,从它们的…...
代码随想录算法训练营Day13
110.平衡二叉树 力扣题目链接:. - 力扣(LeetCode) 后序迭代 class Solution {public boolean isBalanced(TreeNode root) {return getHeight(root)!-1;}public int getHeight(TreeNode root){if(rootnull){return 0;}int leftheightgetHei…...
基于STM32的智能门禁系统
目录 引言项目背景环境准备 硬件准备软件安装与配置系统设计 系统架构关键技术代码示例 RFID数据采集与处理门禁控制实现显示与报警功能应用场景结论 1. 引言 智能门禁系统在现代安防中占据重要地位,通常用于控制进入和离开特定区域的权限。通过基于STM32微控制器…...
[EBPF] 实时捕获DM数据库是否存在SQL阻塞
1. 介绍 eBPF(extened Berkeley Packet Filter)是一种内核技术,它允许开发人员在不修改内核代码的情况下运行特定的功能。eBPF 的概念源自于 Berkeley Packet Filter(BPF),后者是由贝尔实验室开发的一种网…...
秋招内推--招联金融2025
【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递) 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…...
Unity2022.3.x各个版本bug集合及推荐稳定版本
最近升级到Unity2022,发现以下问题,仅作参考 2022.3.0f1 - 2022.3.6f1 粒子渲染到RenderTexture闪屏 https://issuetracker.unity3d.com/issues/android-vulkan-visualisation-corruption-occurs-when-rendering-particles-to-render-texture 2022.3.…...
SparkSQL-性能调优
祝福 在这个举国同庆的时刻,我们首先献上对祖国的祝福: 第一,我们感谢您给我们和平的环境,让我们能快乐生活 第二,祝福我们国家未来的路越走越宽广,科技更发达,人民更幸福 第三,…...
leetcode-链表篇
leetcode-707 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的…...
JetLinks物联网平台微服务化系列文章介绍
橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、AI知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能&#x…...
【QT Quick】基础语法:导入外部QML文件
在实际项目中,代码通常分为多个文件进行模块化管理,这样可以方便代码重用,例如统一风格或共享功能模块。我们将在此部分学习如何创建 QML 项目,并演示如何访问外部代码,包括其他 QML 文件、库文件以及 JS 代码。 准备…...
Llama 系列简介与 Llama3 预训练模型推理
1. Llama 系列简介 1.1 Llama1 由 Meta AI 发布,包含 7B、13B、33B 和 65B 四种参数规模的开源基座语言模型 数据集:模型训练数据集使用的都是开源的数据集,总共 1.4T token 模型结构:原始的 Transformer 由编码器(…...
【AIGC】ChatGPT提示词助力自媒体内容创作升级
博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯高效仿写专家级文章提示词使用方法 💯CSDN博主账号分析提示词使用方法 💯自媒体爆款文案优化助手提示词使用方法 💯小结 💯…...
SSTI基础
<aside> 💡 简介 </aside> 原理 又名:Flask模版注入 模版种类 **Twig{{7*7}}结果49 jinja2{{7*7}}结果为7777777 //jinja2的常见参数是name smarty7{*comment*}7为77**<aside> 💡 flask实例 </aside> **from …...
10.1软件工程知识详解上
软件工程概述 软件开发生命周期 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成…...
03Frenet与Cardesian坐标系(Frenet转Cardesian公式推导)
Frenet转Cardesian 1 明确目标 已知车辆质点在Frenet坐标系下的状态: Frenet 坐标系下的纵向坐标: s s s纵向速度: s ˙ \dot{s} s˙纵向加速度: s \ddot{s} s横向坐标: l l l横向速度: l ˙ \dot{l} l…...
knowLedge-Vue I18n 是 Vue.js 的国际化插件
1.简介 Vue I18n 是 Vue.js 的国际化插件,它允许开发者根据不同的语言环境显示不同的文本,支持多语言。 Vue I18n主要有两个版本:v8和v9。v8版本适用于Vue2框架。v9版本适用于Vue3框架。 2. 翻译实现原理 Vue I18n 插件通过在 Vue 实例中注…...
【开源免费】基于SpringBoot+Vue.JS微服务在线教育系统(JAVA毕业设计)
本文项目编号 T 060 ,文末自助获取源码 \color{red}{T060,文末自助获取源码} T060,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…...
expressjs 中的mysql.createConnection,execute 怎么使用
在 Express.js 应用中使用 MySQL 数据库,你通常会使用 mysql 或 mysql2 这样的库来创建和管理数据库连接,并执行查询。然而,mysql.createConnection 并不直接提供 execute 方法。相反,你可以使用 query 方法来执行 SQL 语句。 以…...
每日一题|983. 最低票价|动态规划、记忆化递归
本题求解最小值,思路是动态规划,但是遇到的问题是:动态规划更新的顺序和步长,以及可能存在的递归溢出问题。 1、确定dp数组含义 dp[i]表示第i天到最后一天(可能不在需要出行的天数里),需要花费…...
oracle 正则 匹配 身份正 手机号
1.正则匹配身份证号: regexp_like(card_id,^[1-9]\d{5}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$) ^[1-9]\d{5}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$ ^[1-9]:第一位数字不能为0。 \d{5}:接下来…...
在树莓派上部署开源监控系统 ZoneMinder
原文:https://blog.iyatt.com/?p17425 前言 自己搭建,可以用手里已有的设备,不需要额外买。这套系统的源码是公开的,录像数据也掌握在自己手里,不经过不可控的三方。 支持设置访问账号 可以保存录像,启…...
2022年6月 Frontier 获得性能第一的论文翻译
为百万兆级加速架构做高性能 Linpack 优化 摘要 我们详细叙述了在 rocHPL 中做的性能优化,rocHPL 是 AMD 对 HPL 基准的开源实现,主要是针对节点进行优化的架构,是为百万兆级系统而设计的,比如:Frontier suppercomput…...
做网站要学/热门网站排名
在Java 8中,我们可以在Optional和Stream经常看到map()和flatMap()这两个方法,这两个方法是针对函数式特性引入的,两者功能上看似相近,但其实还是有很大区别的。让我们来了解一下吧。Optional中的比较我们会经常在Optional中使用到…...
下载网站后台/怎么网站推广
1、大部分SDK的方法需要在线程中执行,一般会放在主线程里执行,安卓中主线程一般用于UI渲染。 1 this.runOnUiThread(new Runnable() { 2 3 Override 4 public void run() { 5 // TODO Auto-generated method …...
企业信息管理系统源码/廊坊百度seo公司
在index.aspx<head></head>中加入如下代码,这3个文件可以在网上直接收索名字下载 [javascript] view plaincopy <mce:script type"text/javascript" src"jquery-1.2.6.pack.js" mce_src"jquery-1.2.6.pack.js">&l…...
内网网站建设/中国十大网络销售公司
1. 联合概率密度函数 2. 概率密度的性质 3. 二元连续型随机变量概率分布函数求解示例...
群晖服务器做网站/网站前期推广
Visual Studio 2010 Ultimate已经集成了Team Explorer,而不需要像Visual Studio 2008一样还需要单独安装Team Explorer,在第一篇里已经提到了。 Visual Studio越来越强大了,功能也越来越全,在菜单栏可以看到【Architecture】&…...
wordpress showposts/2021百度最新收录方法
计算机网络 练习(一百一十) 当使用时间到达租约期的()时,DHCP 客户端和 DHCP 服务器将更新租约。 A. 50% B. 75% C. 87.5% D. 100% ---------------------------------------- 答案: A 解析: …...