新版IDEA中Git的使用(三)

说明:前面介绍了在新版IDEA中Git的基本操作、分支操作,本文介绍一下在新版IDEA中,如何回滚代码;

分以下三个阶段来介绍:

  • 未Commit的文件;

  • 已经Commit,但未Push的文件;

  • 已经Push的文件;

未Commit

对于未Commit的文件,回滚代码,可以在Commit窗口,选中文件,鼠标右键,选择Rollback,即可回滚代码,恢复到未修改状态;

在这里插入图片描述

弹出窗口,选择Rollback

在这里插入图片描述

文件恢复到未修改状态的黑色;

在这里插入图片描述

而对于新增的文件,直接在Commit接口删掉即可,当然,也可以选中,Rollback,但文件会加入到未追踪状态,还是会出现在IDEA中,就不如直接删除掉。

在这里插入图片描述

未push

比如,我新增了一个文件、修改了一个文件,提交了,但是还没有push到远程仓库(可以看到分支名后面有箭头),此时我想回滚这次提交;

在这里插入图片描述

可以选择这次提交前面的提交,鼠标右键,点击Reset Current Branch to Here,表示将代码回滚到这次提交的状态;

在这里插入图片描述

点击后,会出现下面几种模式,选择如何处理回退的文件;

在这里插入图片描述

  • Soft:修改的文件、新增的文件都恢复到暂存区;

  • Mixed(默认):修改的文件加入到暂存区,新增的文件恢复到未追踪;

  • Hard:修改的文件、新增的文件都丢失,并且当前分支未commit的文件也恢复(新增的删掉,修改的恢复原样);

  • Keep:修改的文件、新增的文件都丢失,当前分支未commit的文件,新增的文件恢复到未追踪,修改的文件保持原样;

可以根据自己的需要进行选择,选择前想清楚,回退的这部分代码是怎么来的:

  • 如果是push的,那么应该选择Soft、Mixed,避免回退后代码丢失;

  • 如果是pull的,那么应该选择Hard、Keep,避免多出来的代码,影响自己分支;


回滚未push的代码,除此之外,还有以下几种:

在这里插入图片描述

  • Undo Commit…:回滚最近一次提交;

  • Revert Commit:回滚某一次提交,并留下回滚记录;

  • Drop Commit:回滚某一次提交,并不留下回滚记录;

以上操作,均是单次操作的回滚,即仅回滚此次操作的文件,例如A提交创建了文件,B提交修改了文件,如果回滚A提交,B提交中修改的文件就不存在了,就会发生冲突。

已push

例如现在,我将新增的代码,add.txt文件push到远程仓库。push上去后发现这段代码有问题,或者我想修改一下comment内容;

在这里插入图片描述

可以这么做,首先回滚本地的提交;

在这里插入图片描述

修改代码或者修改Comment信息后,再push

在这里插入图片描述

这次选择Push下面的这个操作,Force Push

在这里插入图片描述

选择Force Push

在这里插入图片描述

远程仓库的代码就被本次push冲掉了;

在这里插入图片描述

已经push的提交不推荐使用回滚,建议修改代码、文件后重新push一次。如果该分支有其他同事在push代码,上面这种方法可能会冲掉同事push的代码,有风险。

总结

本文介绍在新版IDEA中Git关于回滚的操作,参考B站UP主【小陈努力码代码】的视频 IDEA小技巧-Git的回滚&&强推&&代码找回

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

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

相关文章

【重点!!!】【堆】215.数组中的第K个最大元素

题目 法1:小根堆 最大的K个元素 > 小根堆(类似上窄下宽的梯形) 最小的K个元素 > 大根堆(类似倒三角形) 必须掌握!!! class Solution {public int findKthLargest(int[] nu…

4. java——多态(java巅峰设计,超越了C++的理解,取其精华,去其糟粕)

多态指的是同—个行为具有多个不同表现形式 。是指—个类实例(对象)的相同方法在不同情形下具有 不同表现形式。封装和继承是多态的基础,也就是说,多态只是—种表现形式而已。一个对象,同一个方法不同形态,方法必须重…

Mac电脑如何彻底删除清除数据?CleanMyMac X软件更专业

虽然不用杀毒,但是日常的清理还是有必要的,特别是卸载一些软件会有残留,可以用命令mdfind来找,然后删,这里给新手用户推荐一款应用clean my mac x,定期清理一下,不用的时候关掉就可以。 CleanM…

redis的那些事(二)——布隆过滤器

什么是布隆过滤器? 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。 布隆过滤器实现原理 布隆过滤器是一个bit向量或者说是一个b…

【MySQL学习笔记007】约束

1、概述 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 目的:保证数据库中数据的正确、有效性和完整性。 分类 注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。 2、约束…

分享70个Java源码总有一个是你想要的

分享70个Java源码总有一个是你想要的 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 链接:https://pan.baidu.com/s/1s8ZVYHb5B1GgXMlpG-6-Iw?pwd6666 提取码:6666 项目名称 admin、cms、console 等多…

Flappy Bird游戏python完整源码

通过pygame实现当年风靡一时的flappy bird小游戏。 当前只设定了同样长度的管道,图片和声音文件自行导入。 效果如下: # -*- coding:utf-8 -*- """ 通过pygame实现曾风靡一时的flappybird游戏。 小鸟x坐标不变,画布左移实现…

自动驾驶学习笔记(二十二)——自动泊车算法

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 感知算法 定位算法 规划算法…

绝地求生电脑版的最低配置要求?

绝地求生(PlayerUnknowns Battlegrounds)是一款非常热门的战术竞技游戏,它在全球范围内有着大量的玩家。为了让更多的玩家能够顺畅地体验这款游戏,下面将介绍绝地求生电脑版的最低配置要求。 CPU:Intel Core i5-4430或…

Spark编程语言选择:Scala、Java和Python

在大数据处理和分析领域,Apache Spark已经成为一种非常流行的工具。它提供了丰富的API和强大的性能,同时支持多种编程语言,包括Scala、Java和Python。选择合适的编程语言可以直接影响Spark应用程序的性能、可维护性和开发效率。在本文中&…

恶意软件分析沙箱在网络安全策略中处于什么位置?

恶意软件分析沙箱提供了一种全面的恶意软件分析方法,包括静态和动态技术。这种全面的评估可以更全面地了解恶意软件的功能和潜在影响。然而,许多组织在确定在其安全基础设施中实施沙箱的最有效方法方面面临挑战。让我们看一下可以有效利用沙盒解决方案的…

【Python】pip管理Python包

命令&#xff1a;pip install <包名> 安装指定的包。 pip install ipython #或者 pip install ipython -i https://mirrors.aliyun.com/pypi/simple/ 命令&#xff1a;pip uninstall <包名> 删除指定的包。 pip uninstall ipython 命令&#xff1a;pip list 显…