idea中git版本回退_idea git 回退-程序员宅基地

技术标签: 工具类  git  java  # Git  intellij-idea  

场景

当我提交了本次修改到本地和远程分支后,发现我本次提交还少了一些修改内容,或者说本次修改是完全错误的,然而也push到远程仓库去了。如何回退?

问题

已经提交到仓库(本地和远程仓库)的内容如何利用IDEA回退到原来指定版本?

方法

有两种方法:1、Revert操作 2、利用IDEA的Reset Head指针

影响

方法1的Revert操作会当成一个新的提交记录,追加到提交日志当中,这样便保留了原来的提交记录。(推荐)

方法2的Reset Head指针,会抛弃原来的提交记录,使Head指针强制指向指定的版本。

实验环境

上图是实验环境。本次实验只操作Readme.md文件。初始化时,master和演示使用的分支“git_demo”都是指向版本一:“版本1:第一次编辑”文本内容。当前操作分支为git_demo。

说明

本次实验环境未必和您的情况完全相符,不过大致思路是相同的。如果您在解决问题过程中遇到冲突,解决就好了。

方法1:Revert操作

当在版本1基础上进行修改内容,并提交本地、远程仓库后,发现提交的内容不是我想要的,或者是完全错误的,需要回退版本1。

步骤

在想要回退历史版本上单击鼠标右键,选择“Revert”(见下图)

这时弹出冲突对话框,双击冲突文件以解决冲突。(见下图)

在解决冲突对话框中,决定最终的版本文件。(见下图)

重新提交到本地仓库(见下图)

Push

同步远程仓库(见下图)

这种回退的好处在于,如果后悔了“回退”这个操作,也可以回退到没有回退之前的版本。因为历史记录还保留提交记录。

方法2:Reset Head指针

当在版本1基础上进行修改内容,并提交本地、远程仓库后,发现提交的内容不是我想要的,或者是完全错误的,需要回退版本1。

步骤在想要回退历史版本上单击鼠标右键,选择“Reset Current Branch to Here”(见下图)

在弹出的git reset 参数类型选择框中,选择Hard(见下图),并Reset

本地仓库回退到了版本1,需要同步远程仓库,执行push操作。

push

后,提示Push拒绝。打开Terminal,在本项目目录下,输入git push -f 强制同步远程仓库。

同步后,会发现,git日志丢失了版本1以后的提交。

总结

  • Revert操作其实就是回退操作,默认是回退到最近一次提交点,也可以回退到指定提交点,就像本次实验演示的。
  • Revert的操作其实也是设置Head指针。
  • 其实比较推荐Revert操作,毕竟可以后悔。方法2中git push -f 强制同步操作并不推荐使用,在团队协作环境中可能会引发问题。
  • 在方法2中,选择git reset参数选择的是hard,这种参数适合场景是我只想回退到指定版本的文本。工作区里的内容可以放弃,版本2完全放弃。其实也可以选择Mixed。Mixed作用是在设置Head指针时,保留当前工作区里的文本内容。这样方便直接修改,适合于提交的内容有误,只想修正回来就可以了这种情况。(对比效果见下图)

在回退过程中,可能您的情况不会像本实验那么简单,也就是说会出现冲突情况。那么只需要解决冲突即可。

结尾

除了Hard和Mixed选项,其它回退选项的效果演示可以访问这里: Git Reset 模式演示

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010574904/article/details/124813979

智能推荐

Java实现非递归归并排序-程序员宅基地

文章浏览阅读240次。public class nonRecursiveMergeSort {public static void main(String[] args) { int[] list = {8,4,3,6,9}; MergeSort(list); for(int num:list) System.out.print(num);}public sta..._java 归并排序非递归

OpenWrt常见问题汇总_openwrt没有路由器的型号-程序员宅基地

文章浏览阅读4.8k次。目录1.***error:'OpenWrtunknown'istoolong,maxfirwareversionlengthis132.DownLoad failed3.OpenWrt的Target Profile找不到自己的路由器型号 4.编译错误you should not run configure as root (set FORCE_..._openwrt没有路由器的型号

source insight 工程项目路径替换_source insight 4.x 替换文件-程序员宅基地

文章浏览阅读1.1k次。然后切换到sourceinsight,刚才的弹窗还在,点击Addfromlist按钮,选择刚才完成路径替换的.txt文件,等待导入完成,至此,完成路径替换,又不用再添加一遍文件。Project->AddandRemoveProjectFiles->RemoveAll,移除原来所有文件,完毕后,当前弹窗别关。Project->ExportProjectFileList,点保存.txt文件。找到刚才保存的.txt文件位置,打开并批量替换路径。..._source insight 4.x 替换文件

java做一个文件存储回滚的实现_java中文件可以回滚吗-程序员宅基地

文章浏览阅读798次。思路:操作任意表之前,先对表做备份,如果出了异常,那么还原备份。采用kv存储 nosql存储main函数:public class TestDemo { public static void main(String[] args) { // 数据初始化 Car car = new Car(); car.setCarAge("0"); car.setCarBirth("2022-01-30"); car.setC_java中文件可以回滚吗

display: weston: opaque region笔记_pixman_region32_intersect-程序员宅基地

文章浏览阅读1.1k次。client的设置方法:region = wl_compositor_create_region(window->display->compositor);wl_region_add(region, 0, 0, window->geometry.width, window->geometry.height);wl_surface_set_opaque_region(window->surface, region);wl_region_de_pixman_region32_intersect

matlab double to int,如何将matlab中的sym数据类型转换为double型-程序员宅基地

文章浏览阅读7.7k次。满意答案a19850429推荐于 2016.11.30采纳率:47%等级:8已帮助:862人一般来说用dec2hex及hex2dec就可以。ss='010600001388849C';ssDec = hex2dec(ss);ssHex = dec2hex(ssDec);format hex;disp(ssHex);不过前提是你的机器能处理这么大的数。我用小一点的数比如说ss='01600..._matlab将sym类型变为double类型

随便推点

【Mac使用技巧】Mac中文输入法打不出来句号_mac打不出来中文句号-程序员宅基地

文章浏览阅读2.2w次,点赞17次,收藏3次。解决办法:点击导航栏里的输入法, 找到use halfwidth punctuation ,如果有勾, 取消选中就行了。此文章本人原创,如有问题底部留言,如有转载请标明出处。--HurryChen Happy Coding! *\( ^ v ^ )/*..._mac打不出来中文句号

腾讯信鸽推送(七):魅族推送通道配置_信鸽 魅族推送-程序员宅基地

文章浏览阅读328次。后台不知道填写的魅族appid是哪个? 腾讯信鸽后台填写的是6位数的appid,如下图所示 需要腾讯信鸽插件请联系企业即时通讯-触点通QQ:1417249367..._信鸽 魅族推送

python-pcl文档_python-pcl 学习教程-程序员宅基地

文章浏览阅读765次。https://python-pcl-fork.readthedocs.io/en/latest/tutorial/_python-pcl 学习教程

Taro/TraoUI框架使用过程中的一些坑-程序员宅基地

文章浏览阅读7.8k次。使用TaroUI组件 @import样式不好使 / 不能够覆盖样式问题Textarea 组件层级穿透问题_traoui

libVLC提取视频帧及自定义读取媒体文件_libvlc_video_set_callbacks-程序员宅基地

文章浏览阅读1.2w次,点赞10次,收藏26次。hello诶喂八滴跟我一起嗨嗨嗨。。。,阿循今天给大家分享一下最近在学习的开源视频播放器vlcplayer的一些心得,我这边是要把这个弄到Unity里去用,因此提取视频帧和自定义读取是很关键的功能点,前者可以拿到数据给unity渲染,后者可以在C#层面去做数据功能模块,开发效率美滋滋。libvlc是vlc的开发者库,它的播放器也是通过libvlc实现的,我们这里用到了C++,不过也是有C#绑定..._libvlc_video_set_callbacks

为 Windows Phone 8.1 app 解决“The type does not support direct content.”的问题-程序员宅基地

文章浏览阅读342次。我在 VS 14 CTP 中新建了一个空的 app store 项目名叫 PlayWithXaml ,项目的 MainPage.xaml 文件改为了以下内容:<Page x:Class="PlayWithXaml.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentat..._the type window not support direct content

推荐文章

热门文章

相关标签