GIT实践与常用命令---回退

实践场景

场景1 回退提交

在日常工作中,我们可能会和多个同事在同一个分支进行开发,有时候我们可能会出现一些错误提交,这些错误提交如果想撤销,可以有两种解决办法:回退( reset )、反做(revert)
keywords:reset、revert、reflog

回退 git reset

reset 操作就是修改 HEAD 指向的位置,将 HEAD 当前指向的位置回退到指定的某个版本,例如针对某个分支我们提交了三次(如图所示),这是 reset 之前的三个 commit 记录,目前 HEAD 指向的是 commit 3的位置,如果我们想把代码回退到 commit 1的位置,怎么操作呢?

git reset --hard  'commit 1 的提交id'


操作完之后 commit 2和 commit 3 的提交记录就没有了,直接回退到了commit 1。注意区分两个参数:hard& soft

  • –hard 直接回退
  • –soft 软回退

soft只回退了commit 的信息,但是内容不会消失,工作区的文件内容都还在。如果还要提交,直接 commit 即可。这种操作的友好性就是如果我们本身只是想把commit的操作给回退,但是不想还原内容,保持所有内容都还在,这种操作就很合适,保证了代码不会丢失。

重做/反做 git revert

git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如下图所示:

反做前:

git revert -n  'commit 2 的提交id'
git commit -m 'test4'

反做后:

找回reset和revert的记录 git reflog

如何找回因回退或反做而消失的commit记录?上述两种操作会造成有些 commit 记录消失,但是如果自己又后悔了,想找回来,我们该怎么操作呢?可以使用reflog查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

git reflog
faa135e HEAD@{0}: commit: test3
783ef0a HEAD@{1}: commit: test2
2288ba8 HEAD@{2}: commit: test1
abddace HEAD@{3}: commit: test3
30df387 HEAD@{4}: commit: test3

参考资料

  • Git 版本回退(实际工作中基本都会遇到) - 掘金
  • yuque.GIT实践与常用命令

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

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

相关文章

2023软件测试的4个技术等级,你在哪个级别?

最近,我们讨论了软件测试工程的的分级,大家都贡献了自己的想法,对于大家来说,软件测试人的分级其实也代表了我们的进阶方向,职业发展。总体来说,测试工程师未来发展有三个方向: 技术精英 行业专…

层次分析法--可以帮助你做决策的简单算法

作用 层次分析法是一个多指标的评价算法,主要用来在做决策时,给目标的多个影响因子做权重评分。特别是那些需要主观决策的、或者需要用经验判断的决策方案,例如: 买房子(主观决策)选择旅游地(…

android11 申请所有文件访问权限

Android 11 引入了强制执行分区存储的限制,导致应用默认不能访问外部文件。 针对以前涉及较多文件的操作,可采用申请所有文件访问权限的方式来解决这一问题,实现方式如下。 (虽然这样做安全性低,官方并不推荐这样&…

preplexity test

Preplexity test can use model claude and gpt-4, feel speed is ok and only for $10 with coupon (below give a link). Feel ok to try reference link: https://perplexity.ai/pro?referral_codeV6UOS5PH

Shell判断:模式匹配:case(三)

系统管理工具箱 1、需求:Linux提供的丰富的管理命令,用户管理,内存管理,磁盘管理,进程管理,日志管理,文件管理,软件管理,网络管理等等数十个工具包。如果你能通过shell编…

【代码随想录】算法训练计划30

【代码随想录】算法训练计划30 1、51. N 皇后 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,…

微信API:探究Android平台下Hook技术的比较与应用场景分析

微信API:探究Android平台下Hook技术的比较与应用场景分析 正文: 在Android平台开发中,Hook技术是一种常用的技术手段,用于在运行时修改应用程序的行为。下面对一些常见的Hook技术进行比较,并分析它们的适用场景和优缺…

信息系统项目管理师论文

软考官网:中国计算机技术职业资格网 (ruankao.org.cn) 2020年 2020年下半年试题一:论信息系统项目的成本管理 2019年 2019年下半年试题一:论信息系统项目的整体管理 2019年下半年试题二:论信息系统项目的沟通管理

PCI5565反射内存网技术的应用研究

随着嵌入式与通信技术的发展,数控系统经历了由传统的单处理器的集中式体系结构到开放式体系结构,再到多处理器的分布式数控系统体系结构的发展过程。分布式数控系统以高精、高速的加工特征为发展核心,同时以达到异构网络间信息的无缝融合&…

分布式锁3: zk实现分布式锁

一 zk 实现分布式锁 1.1 zk分布式操作命令 1.指令: ls / get /zookeeper create /aa "test" delete /aa set /aa "test1" 2..znode节点类型: 永久节点:create /pa…

优秀智慧园区案例 - 上海世博文化公园智慧园区,先进智慧园区建设方案经验

一、项目背景 世博文化公园是上海的绿色新地标,是生态自然永续、文化融合创新、市民欢聚共享的大公园。作为世博地区的城市更新项目,世博文化公园的建设关乎上海城市风貌、上海文化展示、城市生态环境、市民游客体验、上海服务品牌等,被赋予…

依托数据、平台、知识增强等优势 夸克大模型大幅降低问答幻觉率

“大模型时代,夸克有巨大机会创造出革新性搜索产品。”11月22日,夸克大模型公布了其面向搜索、生产力工具和资产管理助手的大模型技术布局。数据显示,夸克千亿级参数大模型登顶C-Eval和CMMLU两大权威榜单,夸克百亿级参数大模型同样…

电大搜题——让学习变得轻松高效

作为一名现代学者,您一定时刻关注着教育领域的进展和创新。今天,我将向大家介绍一个名为“电大搜题”的神奇工具,它将为您的学习之路带来一场完美的革命。 在快节奏的现代社会中,学习已经成为每个人追求成功的必经之路。然而&…

【数据结构】动态顺序表详解

目录 1.顺序表的概念及结构 2.动态顺序表的实现 2.1创建新项目 2.2动态顺序表的创建 2.3接口的实现及测其功能 2.3.1初始化 2.3.2尾插 2.3.3头插 2.3.4尾删&头删 2.3.5打印&从任意位置插入 2.3.6删除任意位置的数据 2.3.7查找 2.3.8销毁顺序表 3.结语 He…

【交易误区】初学者常犯的MT4外汇交易错误有哪些?

作为初学者,踏入外汇交易市场时,往往会陷入一些常见的误区,导致交易效果不佳甚至遭受损失。在本文中,我将列举并解释五个初学者常见的MT4外汇交易错误,并提供相应的解决方案,帮助您避免这些错误&#xff0c…

java项目之社区互助平台(ssm+vue)

项目简介 社区互助平台实现了以下功能: 1、一般用户的功能及权限 所谓一般用户就是指还没有注册的过客,他们可以浏览主页面上的信息。但如果有中意的社区互助信息时,要登录注册,只有注册成功才有的权限。2、管理员的功能及权限 用户信息的添…

react大文件上传

目录 大文件上传优点: 大文件上传缺点: 大文件上传原理: 为什么要用md5 实现流程: 部分代码1: 部分代码2:​ 大文件上传优点: 文件太大分片上传能加快上传速度,提高用户体验能断点续传 如果上次上传失败…

简单工程模式

代码实现 //simpleFactory.h #ifndef _SimpleFactory_H_ #define _SimpleFactory_H_#include <iostream> #include <exception> #include <string>using namespace std;class Operation { protected:double _numberA 0;double _numberB 0; public:Operat…

udp通信socket关闭后,缓存不清空

udp通信socket关闭后&#xff0c;缓存不清空 udp通信socket关闭后&#xff0c;缓存不清空如何清空udp缓存 udp通信socket关闭后&#xff0c;缓存不清空 关闭一个 UDP socket 连接后&#xff0c;底层接收缓冲区中存储的数据不会被清空。实际上&#xff0c;关闭 socket 连接并不…

MybatisX插件使用

Mybatis X插件 MybatisX 是一款基于 IDEA 的快速开发插件&#xff0c;为效率而生。MybatisX官网&#xff1a;https://baomidou.com/pages/ba5b24/#%E5%8A%9F%E8%83%BD安装方法&#xff1a;打开 IDEA&#xff0c;进入 File -> Settings -> Plugins&#xff0c;输入 mybat…