idea中如何使用git进行版本回退详解

 更新时间:2023年04月04日 11:04:04   作者:Mr_king_dev  
工作中遇到git远程仓库需要回退到历史版本的问题,根据网上的搜索结果结合自己的实践,下面这篇文章主要给大家介绍了关于idea中如何使用git进行版本回退的相关资料,需要的朋友可以参考下

一、在idea中查看提交的历史记录

  • 右键单击项目
  • 单击git
  • 单击Show History

结果展示:

除了第一条记录是创建仓库默认就有的,这条默认的消息我们不用管它,其他的全部都是提交记录。

二、复制当前最新的版本号,以及需要回退的版本号

假设本次我需要回退到User.java这个版本,首先右键单击最新的版本(新增了d.txt),再单击Copy Revison Number(这一步是拷贝版本号)。

得到最新的版本号:

3a25435cc5a74ac6d2ad9f82f8ace340e498d4d0

对User.java执行同样的操作:

首先右键单击User.java,再单击Copy Revison Number(这一步是拷贝版本号)。

得到User.java这个版本的版本号:

09b35d57f1bff43490f00bbaee8e269ca649e765

这一步需要得到最新的版本号以及需要回退的版本号,共2个版本号。

三、执行回退操作。

  • 右键单击项目
  • 单击git
  • 单击Reset HEAD

Reset Type一定要改成Hard

To Commit 这里一定要设置成需要回退的版本号。

因为此时的操作相当于在命令行执行 git reset –hard 版本号

需要回退的版本号User.java:

09b35d57f1bff43490f00bbaee8e269ca649e765

这里接下面

执行了上面的操作,此时的本地仓库就回退到了User.java这个版本。

然后再次查看提交记录,会发现提交记录,仅停留在了User.java

本地仓库也回退到了之前的版本

出现的问题:

User.java之后的提交记录全部没有了,这样会出现一个问题,如果此时直接将本地仓库推送至远程仓库 ,由于没有最新的版本号记录,会直接恢复到最新的版本号中的内容。

下面的操作不要执行,只是为了提醒自己会出现这样的问题才执行的!

此时直接将本地仓库推送至远程仓库得到结果:

四、提交记录中输入最新版本号

因为没有最新的版本号内容,所以将本地仓库推送至远程仓库后会直接恢复到最新仓库的内容,为了解决这个问题,我们需要在提交记录中输入最新的版本号。

这里接上面

在第3步输入了需要回退的版本后,还需要输入最新的版本号。

执行完成后会发现本地仓库还是User.java,但是有了User.java之后的提交记录。

五、提交到本地仓库,然后推送到远程仓库

执行完上面的操作后,发现提交记录停留在了之前最新的版本号,但是没有回退到User.java这个操作的版本号,所以此时需要提交到本地仓库,形成一次提交记录再推送至远程仓库。

将回退到User.java这步操作提交到本地仓库

查看提交记录

生成了回退操作的提交记录,并且之前所有操作记录的版本号都存在。

远程仓库也和本地仓库内容一致:

Idea中使用git回退到指定版本的步骤:

总结:

  1. 查看提交的历史记录,记录下最新的提交记录版本号以及需要回退的版本号
  2. 在Git->Reset Head->Rest Type中输入需要回退的版本号。
  3. 在Git->Reset Head->Rest Type中输入最新的版本号
  4. 操作完2.3的步骤后,一定要提交到本地仓库形成一次提交记录。
  5. 再推送到远程仓库即可。

到此这篇关于idea中如何使用git进行版本回退的文章就介绍到这了,更多相关idea用git版本回退内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java异常堆栈打印次数限制机制用法详解

    Java异常堆栈打印次数限制机制用法详解

    在Java开发中,异常处理是保证程序健壮性的重要手段,但当同一个异常被频繁抛出时,日志可能会被大量重复的堆栈信息淹没,影响问题排查效率,所以本文给大家介绍了Java异常堆栈打印次数限制机制的用法,需要的朋友可以参考下
    2025-04-04
  • SpringBoot中的@Conditional 注解的使用

    SpringBoot中的@Conditional 注解的使用

    @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件的才给容器注册Bean,本文主要介绍了SpringBoot中的@Conditional 注解的使用
    2024-01-01
  • 关于Java整合RabbitMQ实现生产消费的7种通讯方式

    关于Java整合RabbitMQ实现生产消费的7种通讯方式

    这篇文章主要介绍了关于Java整合RabbitMQ实现生产消费的7种通讯方式,消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统,需要的朋友可以参考下
    2023-05-05
  • Springmvc DispatcherServlet原理及用法解析

    Springmvc DispatcherServlet原理及用法解析

    这篇文章主要介绍了Springmvc DispatcherServlet原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Spring Cache扩展功能实现过程解析

    Spring Cache扩展功能实现过程解析

    这篇文章主要介绍了Spring Cache扩展功能实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java调用CMD命令的方法与使用技巧

    Java调用CMD命令的方法与使用技巧

    在实际的开发中我们有可能会遇到 java调用 cmd命令的情况,这篇文章主要给大家介绍了关于Java调用CMD命令的方法与使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • Springboot实现动态定时任务管理的示例代码

    Springboot实现动态定时任务管理的示例代码

    最近在做spring boot项目开发中,由于使用@EnableScheduling注解和@Scheduled注解来实现的定时任务,只能静态的创建定时任务,不能动态修改、添加、删除、启/停任务,下面通过本文给大家介绍Springboot实现动态定时任务管理的方法,感兴趣的朋友跟随小编一起看看吧
    2023-07-07
  • SpringBoot如何优雅实现接口参数验证

    SpringBoot如何优雅实现接口参数验证

    为了保证参数的正确性,我们需要使用参数验证机制,来检测并处理传入的参数格式是否符合规范,所以本文就来和大家聊聊如何优雅实现接口参数验证吧
    2023-08-08
  • 详解spring boot容器加载完后执行特定操作

    详解spring boot容器加载完后执行特定操作

    这篇文章主要介绍了详解spring boot容器加载完后执行特定操作,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • java异常中throw和throws的区别及说明

    java异常中throw和throws的区别及说明

    这篇文章主要介绍了java异常中throw和throws的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论