当前位置: 首页 > news >正文

IDEA Git版本回滚提交方式

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

以此文记录下在IDEA中如何回滚项目历史版本,并提交远程

62da17f1d74ee29502acb1301cf38f13c4c.jpg

大致分为两步:

第一步,回滚本地代码;

第二步,回滚远程代码;

 

首先,我们先来回滚本地代码

按照下图的步骤,获取你要回滚的历史版本的版本号

a3cfaf55eb11a2246c5f4e13123efd11345.jpg

然后项目根目录右键 Git->Repository->Reset HEAD 

b29b2031bc4ffe873b27b74b191e759f244.jpg

bfa87378807e2f5a3e1acac32766c29194e.jpg

Reset Type 有三种:

mixed 默认方式,只保留源码,回退commit和index信息
soft 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit
hard 彻底回退,本地源码也会变成上一个版本内容

此时我们选择Hard彻底回退,点击Reset就能将本地代码版本回滚到指定版本。

 

然后我们开始将回滚的本地代码提交到远程仓库,此时有两种方式:

第一种,直接强制提交,使用git命令提交 git push -f,但是这样会把回滚版本之后的提交记录全部删除,因此不建议这样做。

第二种,用前面我们回滚本地的方式,再次回滚到最新版本。

首先,我们获取到远程分支最新版本的版本号

53099834ba5e6d263331f972ce25b86138d.jpg

然后,我们再次Git->Repository->Reset HEAD 这次与之前有些不一样,我们Reset Type采用Mixed方式将源码保留,然后点击Reset。

bf97f0575517c1ac6cac4c6d95963d6c9d2.jpg

最后我们发现代码已经是旧版本的代码,并且版本还是最新版本,此时正常提交push后我们的本地和远程代码的回滚就完成了。

 

参考:https://blog.csdn.net/gomeplus/article/details/78241070

 

上面的操作基于IDEA工具来进行操作,其底层原理为利用git的tag标签回滚

git tag操作参考:https://blog.csdn.net/fuchaosz/article/details/51698896

我们只在此证明利用Git tag回滚操作与上面的IDEA操作的关系

首先,切换到IDEA的Terminal命令行(也可以是dos命令行,Git Bash命令行),执行下面的命令

ce4da75e62437cc48d2a443c982fefa238b.jpg

b8c8859d97d82fbfe4c16671e43f1dcbbb8.jpg

注意tag详细信息里面的commit id

我们在看看git的历史提交记录中上面tag提交的那次记录的Revision Number

d95685c6cbb02a94a66202f1d211e42871b.jpg

Revision Number为 b8e7431ac80cc37d315362b7d2968d4940583820,不同人的编号会不一样,但是commit id 与 Revision Number一定是一样的

那么我们之前IDEA操作的也都是通过这种原理来实现的。

转载于:https://my.oschina.net/u/3687664/blog/3010042

相关文章:

  • spring framework 模块简介
  • Vue2.5 零基础开发去哪儿网实战(二) - 起步 Vue.js
  • 数组(list)分组、分段
  • 编译并导入OpenSSL
  • Rsync软件错误总结
  • 《TCP/IP具体解释卷2:实现》笔记--ICMP:Internet控制报文协议
  • 小程序button引导用户授权
  • 初识云计算的三种服务模式 (IaaS SaaS PaaS)
  • 大数据hadoop领域技术总体介绍(各个组件的作用)
  • 使用git时候,屏蔽gitignore自身
  • 【VMCloud云平台】拥抱Docker(四)定制属于自已的镜像
  • vue ----自定义指令Vue.directive(),实现拖拽
  • Scalaz(14)- Monad:函数组合-Kleisli to Reader
  • 微软以白金会员加入 OpenChain 开源组织
  • 数学公式
  • Facebook AccountKit 接入的坑点
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • java2019面试题北京
  • PV统计优化设计
  • Python3爬取英雄联盟英雄皮肤大图
  • Vue.js源码(2):初探List Rendering
  • 测试开发系类之接口自动化测试
  • 聚类分析——Kmeans
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 力扣(LeetCode)21
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 什么软件可以剪辑音乐?
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 携程小程序初体验
  • 7行Python代码的人脸识别
  • postgresql行列转换函数
  • ​插件化DPI在商用WIFI中的价值
  • #define,static,const,三种常量的区别
  • #etcd#安装时出错
  • #pragma预处理命令
  • #vue3 实现前端下载excel文件模板功能
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .equals()到底是什么意思?
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core Swagger 过滤部分Api
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET程序员迈向卓越的必由之路
  • .Net中ListT 泛型转成DataTable、DataSet
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • []FET-430SIM508 研究日志 11.3.31
  • [20170728]oracle保留字.txt
  • [AR]Vumark(下一代条形码)
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)