git还原到某个版本

2023-10-30

1、tortoisegit还原

v2还原到v1

1.1 强制还原(git reset)

    如果使用这种方式还原到v1,将丢失还原到v1到v2之间的所有提交及日志。

1.1.1 显示日志

104633_9fLD_182501.png

有save1、save2两条提交记录。 

1.1.2 重置版本(本地分支还原)

使用硬重置,否则重置后,还会有未提交的文件。重置到save1版本。

1.1.3 提交(推送到远程分支)

    因为我们本地库版本比远程库版本低,需要强制推送

111529_0tqk_182501.png

注意:

不要选择“推送所有分支”,否则会改变其他分支记录,其他分支会丢失代码。

1.1.4 缺点

这种方式回退代码的弊端显而易见,那就是会使 HEAD 指针往回移动,从而会失去之后的提交信息。将来如果突然发现,save2 的代码是有用的,但是已经找不回来了。

1.2 温和还原(checkout)

    为保留v1-v2的提交和历史记录,可以使用该方式。

1.2.1导出还原版本(v1)

114325_qO8b_182501.png

1.2.2 提交还原版本(v1)

    将导出的版本作为新版本v3提交。

1.3 温和还原(git revert)

git revert的作用通过反做创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针是指向这个新生成的版本,而不是目标版本。

1.3.1 显示日志

每次提交创建一个类,分别为Test1、Test2、Test3。

1.3.2 还原此版本做出的变更 

还原Test2版本

还原后,test2版本提交的代码被取消了(即Test2类被删除了)。

1.3.3 提交

可以将修改代码提交到远程

 查看日志,以前的提交记录没有丢失,最新的为刚提交版本。

2、idea还原

还原到合并前

2.1 强制还原

2.1.1 合并前

dev分支

代码

package com.ybw.jdk8.demo.utils;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;

/**
 * @author weixiansheng
 * @version V1.0
 * @className DevMaster
 * @date 2023/5/18
 **/
@Slf4j
public class DevMasterTest {

    @Test
    public void dev(){
        log.info("1");
        log.info("2");
        log.info("3");
    }

    @Test
    public void print(){
        log.info("print");
    }

}

提交记录

master分支

package com.ybw.jdk8.demo.utils;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;

/**
 * @author weixiansheng
 * @version V1.0
 * @className DevMaster
 * @date 2023/5/18
 **/
@Slf4j
public class DevMasterTest {

    @Test
    public void print(){
        log.info("print");
    }

    @Test
    public void master(){
        log.info("1");
        log.info("2");
        log.info("3");
    }

}

 2.1.2 master合到dev

合完后,dev的提交记录

2.1.3 还原

dev分支还原到这次提交 

 选择hard方式

 reset后,提交历史就没有master的记录了

强推

2.2 温和还原(checkout)

与1.2类似

2.3 温和还原(git revert)

选中master的三次提交,revert commits,就可以撤销master的提交记录了。

 master的提交就会全部撤销

2.4 温和还原(比较-还原)

  • 上线版本:上线时会打tag。
    • 比如:v1、v2、v3、v4、v5。
  • 还原原因:当前master有问题,需要还原到v1。
  • 降低影响:多团队开发,功能不同。
    • 不能直接强制还原到V1。
    • 保留v2、v3、v4、v5。
    • 其他团队只需要合并master,不需要其他额外操作。

2.4.1 idea切换到v1版本

根据tag:v1.0创建v1分支

2.4.2 master分支和v1分支比较

比较

 左侧为当前master分支,右侧为v1版本的代码

 2.4.3 代码还原

 

提交代码

2.4.4 提交历史

v1-v5的提交历史都在

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git还原到某个版本 的相关文章

  • 为什么这个基于java配置的Spring应用程序不能正常工作

    我最近开始了一个使用 Spring 框架的项目 目标是在没有 XML 配置文件 只有 Java 代码的情况下开发它 目前 我将以下文件添加到我的项目中 WebAppConfig java EnableWebMvc ComponentScan
  • Spring Security 中 Web 忽略和 Http 允许之间的区别?

    这两种方法有什么区别 Override protected void configure HttpSecurity http throws Exception http authorizeRequests antMatchers api p
  • Java 7 中的 Beans Binding 将被什么取代?

    我在某处读到 我忘记了链接 Beans Binding 将不会成为 Java 7 的一部分 有人知道什么会取代它吗 另外 当前版本的 Java 中是否有 Bean 绑定的替代方案 我建议JGoodies 绑定 https binding d
  • 在循环中使用 if 语句? - 加工

    假设我必须在 for 循环中使用 if 语句 并且 for 循环在特定条件下触发 而 if 语句仅在 for 循环达到特定阶段时触发 例如 条件是一个计数器 当发生特定事件 例如球从屏幕上掉下来 时 该计数器会进行计数 每次球穿过屏幕时 都
  • Spring 应用程序启动前的 Spring Boot 设置日志记录

    我有一个项目 在启动 SpringApplication 之前需要日志记录机制 我怎样才能做到这一点 我尝试设置自己的日志记录机制 LogManager getLogManager readConfiguration 但在 Spring 应
  • 使用 iText 在内存上生成在磁盘上生成的 PDF

    我正在从 Java 应用程序生成 PDF 并且效果很好 问题是 PDF 在磁盘上生成为 Document documento new Document PageSize A4 25 25 25 25 PdfWriter writer Pdf
  • 使用 GIN 注入 Class

    有没有办法注入类类型Class
  • 如何修复XSS漏洞

    我们正在使用 fortify 扫描 java 源代码 它抱怨以下错误 Method abc sends unvalidated data to a web browser on line 200 which can result in th
  • 返回 Consumer 表达式内的 Method 值

    我试图在方法中返回一个布尔值 并且我正在使用消费者函数 有什么方法可以直接在 Consumer 表达式中返回该值吗 这是代码 private static boolean uuidExists UUID uuid MySQL getResu
  • RecyclerView onItemClickListener 不工作

    我正在研究回收视图并尝试对 recyclerview 的每个项目使用点击侦听器界面 这是我的活动课程 public class LegacyHomeActivity extends ActivityBaseDrawer private Li
  • 使用 TestRestTemplate 和 MockRestServiceServer 时,解析异常而不是实体列表不起作用

    我有一个简单的控制器 CODE https github com joergi tryouts blob main kotlin mockrestserver src main kotlin io joergi kotlinmockrest
  • 使用电子邮件、用户名和密码进行 Firebase 身份验证

    我想知道是否可以使用电子邮件和用户 ID 密码登录 我有一个项目 我希望用户添加一个唯一的号码 实际上是我们公司提供的工作识别号码 以便能够签名参与该计划的人员将继续留在公司就业 即使电子邮件和密码正确但用户 ID 错误 我也需要 fire
  • 多少次函数调用会导致堆栈溢出

    你好 Android Java 开发者 当一个函数调用一个函数并且该函数调用另一个函数等等时 有多少次调用 堆栈长度 会让我陷入堆栈溢出 有一般经验法则吗 我问的原因是因为我现在对于我的 5 人纸牌游戏来说哪个更有效 设计明智 解决方案一
  • 使用 Arrays.copyOf 复制不同类型的数组时出现问题

    我正在尝试创建一个方法 该方法几乎将任何内容作为参数 并返回带有某些分隔符的值的串联字符串表示形式 public static String getConcatenated char delim Object names String st
  • 在java中的super调用之前创建一个对象

    考虑到简单的java代码是行不通的 public class Bar extends AbstractBar private final Foo foo new Foo bar public Bar super foo 我需要在之前创建一个
  • 注意通知持续时间

    是否可以将抬头通知的持续时间设置为无限 现在它只显示 5 秒 已经尝试过不同的事情 例如更改类别 但持续时间始终为 5 秒 这是我的代码 Notification notification notificationBuilder setCa
  • JavaFX:在 WebView img 标签中未加载本地图像

    以下是我的代码 一切安好 我可以加载远程页面 我可以放置 HTML 内容 但我的img标签显示一个X标志表示无法加载图像 Note 我的图像与类位于同一个包中JavaFX在 Smiley 文件夹中 我可以列出所有图像 这意味着路径没有问题
  • 我们还需要迭代器设计模式吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Maven 将值附加到文件中

    我想在文件末尾附加一个值 但我无法确定要使用哪个插件 例子 我要附加的值 myValue file value1 value2 myValue 追加后 我知道我可以使用 antrun plugin 来做到这一点 但是可以使用 Maven 插
  • JPanel 无法使用 setSize 和 setPreferedSize

    请解释为什么它不起作用 您也可以发布解决方案来解决此问题 非常感谢您提前 public class Run extends JFrame Fields static JPanel jpanel private int x y Constru

随机推荐

  • RT-Thread记录(十三、I/O 设备模型之PIN设备)

    讲完UART设备之后 我们已经熟悉RT Thread I O 设备模型了 回头看看基本的 PIN 设备 目录 前言 一 PIN 设备模型解析 1 1 初识 GPIO 操作函数 1 2 PIN 设备框架 1 3 PIN 设备驱动框架层 实现的
  • html safari错误,HTML5的本地存储的错误:“quota_exceeded_err Safari:DOM例外22:试图存储超过定额补充一下。”...

    Rubens Mariuzzoleiyonglin提出了一个问题 html5 localStorage error with Safari QUOTA EXCEEDED ERR DOM Exception 22 An attempt was
  • Web开发必备的 9 个开源项目

    1 AdminLTE Github Star 数 24969 Github 地址 https github com almasaeed2010 AdminLTE 2 vue Element Admin Github Star 数 19546
  • LinearAlgebraMIT_9_LinearIndependence/SpanningASpace/Basis/Dimension

    这节课我们主要学习一下 Linear Independence 线性无关 spanning a space 生成空间 basis 基和 dimension 维度 同时我们要注意这四个很重要的基本概念的描述对象 我们会说向量组线性无关 由一个
  • WIN10操作系统下如何修改MySQL5.7数据库的ROOT用户密码(亲测有效)

    由于工程项目需要 需要修改MySQL5 7数据库的ROOT用户密码 但是发现网上很多方法都是针对MySQL5 6数据库系统的 并不适合MySQL5 7数据库 一 查看MySQL5 7数据库的服务名 可以观察到 MySQL5 7数据库的服务名
  • 黑马程序员jvm笔记(四)--字节码部分心得

    10 字节码部分 这部分 主要介绍了类的字节码文件 以及从更深层的角度去理解类是怎么被加载的 jvm的内存结构 10 1 字节码文件的分析 1 获得字节码文件 得到如下的字节码文件 0000000 ca fe ba be 00 00 00
  • MySQL(十)—线上MySQL锁超时了怎么办?update操作怎么上了个表锁啊?

    文章目录 一 异常错误 二 尽量还原这个错误 1 准备数据 2 阐述业务 3 分析原因 三 线上如何解决这个异常呢 1 设置锁超时时间 2 使用online ddl方式建立唯一索引 3 动态增加服务节点 一 异常错误 先上一个出现异常的截图
  • STC89C51——定时器/计数器介绍及程序配置

    前言 本文介绍基于常见的51单片机 即如下图的芯片 AT89C51具备2个定时器 计数器 即定时器 计数器 0 定时器 计数器 1 简称 T0 T1 T0 有 4 种工作方式 T1 有 3 种工作方式 2个定时器前3种工作方式一样 但是在T
  • IS-IS协议 HCIP

    我需要 最狂的风 和最静的海 HCIP IS IS协议基本原理 场景应用 历史起源 路由计算过程 地址结构 路由器分类 邻居HELLO报文 邻居关系建立 DIS及DIS与DR的类比 链路状态信息的载体 链路状态信息的交互 路由算法 网络分层
  • IO和NIO的区别

    在这里不再过多描述IO的具体API用法 总的来说reader writer是处理字符的 而inputsream 和 outputstream是处理字节的 eg 图片什么的 其实现在大多Web应用上传图片时候也不会使用字节流而是上传一个图片存
  • elasticsearch中节点都启动但是无法形成集群问题

    近日 单台机器 8个节点的es集群 8个节点都正常started了 但是就是无法形成集群 后来看日志 日志中出现一堆的MasterNotDiscoveredException这种异常 完整日志如下 2016 04 27 15 08 22 4
  • 关于STM32软件IIC与PCF8563通信 逻辑分析仪0xA2 Missing Ack /NAK排查与解决

    最近在使用PCF8563时 准备用STM32 软件IIC通信时 改了软件IIC后 将所有函数都做了适配 但是 发现PCF正常初始化 程序无法运行 链接上逻辑分析仪后发现是一直收不到ACK 发送的A2 地址和0x08都正常 程序正常时先设置时
  • 暴力解决八皇后问题

    如题 翻到了一个以前的代码 发现是刚学c时帮同学解决八皇后问题的代码文件 足足两百行 放出来纪念一下当初傻傻的自己吧哈哈 话不多说 放代码 include
  • arm linux kernel编译问题总结

    1 make menuconfig报错 guang guang kylin Develop linux stable make menuconfig HOSTCC scripts basic fixdep Unable to find th
  • 【记录】服务器搬家记录

    服务器搬家记录 前言 零 备份数据 程序 一 备份mysql 1 先删掉无用的表和库 减小数据包大小 2 备份到本地 二 备份docker 1 提交 2 标签 3 push 4 保存挂载宿主机上的文件 三 备份定时脚本 四 开发环境 服务器
  • 完美解决:由于找不到mfc140u.dll,无法继续执行代码。

    什么是msvcp140u dll msvcp140 dll是Microsoft Visual C Redistributable的一个组件 它包含了许多用于C 编程的函数和类 如果你的系统缺少了这个文件 那么你可能会遇到 找不到msvcp1
  • js 用变量做对象key值的写法

    变量为name 对象为obj var name name var obj obj key var name jack var obj name 1 name 2 name aaa 3 console log obj name 1 jack
  • Dart中List的常用方法概述及使用案例

    在Dart中 List是一种有序的集合 它提供了许多有用的方法来操作列表数据 Flutter使用Dart语言开发 所以在Flutter中依然适用 下面是List常用的方法概述及使用案例 length属性 List的length属性返回Lis
  • pandas的时间对象

    pandas时间处理对象 pandas中有个时间库 datautil 可以使用其中的方法把多种字符串时间格式转化为时间对象 import dateutil import pandas as pd a dateutil parser pars
  • git还原到某个版本

    1 tortoisegit还原 v2还原到v1 1 1 强制还原 git reset 如果使用这种方式还原到v1 将丢失还原到v1到v2之间的所有提交及日志 1 1 1 显示日志 有save1 save2两条提交记录 1 1 2 重置版本