TortoiseGit 入门指南11:还原与重置

Git 就像个时光机器,能让我们还原到任何提交。

还原未提交的更改

假如我们在查看一个干净的代码仓库,干净意味着工作区中的文件保持着最后一次提交的状态,没有修改。在查看的过程中,我们有意或无意的修改了工作区中的文件,之后我们想把这些文件恢复成查看前的样子。像这样要还原自上次提交以来在工作区所做的所有更改,方法为:选中所有更改文件的父目录,鼠标右键单击,在弹出的上下文菜单中,选择 TortoiseGit - Revert
在这里插入图片描述
弹出还原对话框,在该对话框中,选择全部,单击 “OK” 键,自上次提交以来的所有修改会全部还原。这意味着工作区中的内容重新变得和最后一次提交时的内容一致。
在这里插入图片描述
注:

  1. 如果只是还原一个文件,可以选中该文件,鼠标右击 - TortoiseGit - Revert
  2. 如果要还原 已删除重命名 文件, 必须要选中父目录,鼠标右击 - TortoiseGit - Revert,这是因为工作区中已经找不到该文件了。
  3. 如果还原 已删除重命名新添加 文件,也可以在提交(commit)时、查看仓库状态(status)时选择相应文件,使用右键菜单 - Revert... 。比如在提交对话框中,如果你发现 README.md 文件是意外修改的,你不想提交它,而是要把它恢复,这时只需要选中 README.md 文件,鼠标右击 - Revert...
    在这里插入图片描述

还原已提交的更改

上面的 Revert 操作只能还原本地工作区中的更改,如果要还原已经提交的更改,则需要在 日志对话框 中操作:

  1. 选中仓库,鼠标右击 - Git Show log ,打开日志对话框;
  2. 选择要还原的提交,鼠标右击 - Revert change by this commit,即可完成还原。如果你还原了最后一个提交,最后一个提交的信息仍然保留着,但工作区中最后一次提交修改的内容已经被还原;
  3. 马上进行一次提交,或者修改工作区的内容后再提交。

在这里插入图片描述
注:虽然你还原了最后一次提交的修改,但是最后一次提交仍然会存在你的仓库中,并且可以在日志对话框中看到。

重置

如果你提交了几次后,出于某种原因,最近的几次提交不想要了,你想回到某个提交,就像最近的几次提交不存在一样。实现这种情景的是 重置(reset)。

重置仍然在日志对话框中操作。如下图所示,我想将某个仓库重置到“feat: 增加颜色区分AQI等级”提交:选中该提交,鼠标右击 - Reset "master" to this...
在这里插入图片描述
这将打开重置对话框,如下图所示:
在这里插入图片描述
这里有三种 重置类型 (Reset Type):

  1. Soft:软重置。之前的提交内容不删除,全部还原到工作区,这些文件处于 已暂存 状态,通过 Git 命令可以看出:
    在这里插入图片描述
  2. Mixed:混合重置。这是默认设置。之前的提交内容不删除,全部还原到工作区,这些文件处于 已修改 状态,通过 Git 命令可以看出:
    在这里插入图片描述
    注:这里用到 Git 命令只是为了说明 Soft 模式 和 Mixed 模式的细微差别,之所以用 Git 命令,是因为除了叠加的图标, TortoiseGit 看不出来这两种模式的区别。换句话说,如果你使用 TortoiseGit ,你可以无视 Soft 模式 和 Mixed 模式的区别,使用任何一个都可以。
  3. Hard:硬重置。之前的提交内容全部删除,并不会还原到工作区。工作区只保留这次提交的内容,即“feat: 增加颜色区分AQI等级”提交的内容。

所以如果你确定不要某些提交,选择 硬重置 即可。









读后有收获,资助博主养娃 - 千金难买知识,但可以买好多奶粉 (〃‘▽’〃)
千金难买知识,但可以买好多奶粉

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库(五)

目录 一、数据库的约束 1.1 约束类型 1.1.1 null约束 1.1.2unique约束 1.1.3default默认值约束 1.1.4primary key主键约束 1.1.5foreign key外键约束 二、内容重点总结 一、数据库的约束 1.1 约束类型 not null - 指示某列不能存储 null值。unique - 保证某列的每行必须有唯一…

blender 叶片制作

圆润叶片 效果展示 shift a 新建矩形,s y 延 y 轴方向压扁,ctrl r 循环切割,滚动滚轮,延 y 轴方向切两条循环线,框选点,s 缩放,调整到叶片造型,添加细分修改器;给叶片…

opencv-14 图像加密和解密

在OpenCV中,图像加密和解密是通过对图像像素进行一系列的变换和操作来实现的 通过按位异或运算可以实现图像的加密和解密。 通过对原始图像与密钥图像进行按位异或,可以实现加密;将加密后的图像与密钥图像再次进行按位异或,可以实…

CodeGeex论文阅读

《CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Evaluations on HumanEval-X》 论文地址:https://arxiv.org/pdf/2303.17568.pdf 代码地址:https://github.com/THUDM/CodeGe 一、简介 CodeGeeX,是一个具有130亿…

FL Studio Producer Edition v21.0.3.3517 for Mac中文版解锁版下载

水果音乐编辑软件FL Studio Producer Edition v21.0.3.3517 for Mac中文版解锁版下载是兔八哥爱分享搜集到的Mac Os系统上一款功能齐全的音乐编曲工具,可以为需要创作高品质音乐曲目的专业和业余艺术家提供多轨录音,排序和混音。 借助FL Studio 21的帮助…

vue+canvas图片裁切

vuecanvas图片裁切 头像的裁切、图片的一些处理…… vue:路由router、vuex状态管理 组件效果 组件代码: 实现思路 盒子即一张画布,把选择的图片放到画布中进行裁切,按照canvas的一些语法裁切一部分内容。 有一个固定大小的画布&am…

数组的递归筛选

数组递归筛选 根据一个值筛选出来通过 includes 递归 const options [{name: "ikun",options: [{name: "YAY11",},],},{name: "YAY",}, ];function findValue(orgOptions,val) {let newArr1 []orgOptions.forEach(item>{if(item.options…

【windows测试通过】关于Godot导入外部音频文件的问题

file.open(filepath, file.READ) var buffer file.get_buffer(file.get_len()) #put data into audiostreamsample var stream AudioStreamSample.new() stream.data buffer 代码给出,还没有测试过。(godot3.2测试未通过) 在运行时轻松加载外部音频…

ROS:动态参数

目录 一、前言二、概念三、作用四、实际用例4.1需求4.2客户端4.2.1流程4.2.2新建功能包4.2.3添加.cfg文件4.2.4配置 CMakeLists.txt4.2.5编译 4.3服务端(C)4.3.1流程4.3.2vscode配置4.3.3服务器代码实现4.3.4编译配置文件4.3.5执行 4.4服务端(Python)4.4.1流程4.4.2vscode配置4…

Kakfa - 多副本架构

文章目录 基本架构Kafka 多副本架构概念优点缺点 图解多副本架构小结 基本架构 Kafka 多副本架构 概念 Kafka 是一个高性能、分布式的消息系统,被广泛应用于各种场景中。在 Kafka 中,多副本架构是保证数据可靠性的重要手段之一。 多副本架构指的是将同…

微信小程序中常见组件的使用

文章目录 微信小程序中常见组件的使用视图组件viewscroll-viewswipermovable-area 基础组件icontextrich-textprogress 表单组件buttoncheckbox、checkbox-grouplabelforminputpicker单列选择器多列选择器时间选择器&日期选择器&地区选择器 picker-viewradiosliderswit…

【protobuf】socket.io序列化和反序列化

1.背景 后台利用socket.io发送websocket消息&#xff0c;加密用到protobuf 2.反序列化时遇到问题 Traceback (most recent call last): File "D:/locust/Nigeria/test3.py", line 40, in <module> play.ParseFromString(decode_spin_str) google.proto…

Java将获取的参数,图片以及pdf文件放入到word文档指定位置

首先引入的依赖 <!-- poi库 --> <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId&…

【hadoop】HDFS

HDFS 操作HDFSWeb Console 网页工具操作NameNode操作SecondaryNameNode 命令行Java API HDFS的原理解析数据上传的过程数据下载的过程 HDFS的高级特性回收站配额Quota名称配额空间配额 快照Snapshot安全模式 SafeMode权限管理&#xff1a;类似LinuxHDFS的集群 HDFS的底层原理&a…

UART串口通信协议

一、串行通信 串行通信分为两种方式&#xff1a;同步串行通信和异步串行通信。 同步串行通信需要通信双方在同一时钟的控制下&#xff0c;同步传输数据。 异步串行通信是指通信双方使用各自的时钟控制数据的发送和接收过程。 二、UART 通用异步收发传输器&#xff08;Unive…

基于SpringBoot + EasyExcel + Vue + Blob实现导出Excel文件的前后端完整过程

首先前端发起HTTP请求之后&#xff0c;后端返回一个Excel输出流&#xff0c;然后前端用Blob类型接收数据&#xff0c;并且解析响应头数据以及提取源文件名&#xff0c;最后用a标签完成下载。 一、后端代码 &#xff08;1&#xff09;导入阿里巴巴的EasyExcel依赖&#xff08;…

云计算的学习(五)

五、虚拟化特性介绍 1.集群特性 1.1HA HA&#xff08;Hith Available&#xff0c;高可用特性)&#xff0c;克服单台主机的局限性&#xff0c;当一台服务器损坏&#xff0c;运行在损坏服务器上的虚拟机会自动迁移到其他运行状态正常的服务器上&#xff0c;整个迁移过程用户无感…

基于ssm的社区生活超市的设计与实现

博主介绍&#xff1a;专注于Java技术领域和毕业项目实战。专注于计算机毕设开发、定制、文档编写指导等&#xff0c;对软件开发具有浓厚的兴趣&#xff0c;工作之余喜欢钻研技术&#xff0c;关注IT技术的发展趋势&#xff0c;感谢大家的关注与支持。 技术交流和部署相关看文章…

设计模式-外观模式在Java中的使用示例

场景 外观模式 外观模式是一种使用频率非常高的结构型设计模式&#xff0c;它通过引入一个外观角色来简化客户端与子系统 之间的交互&#xff0c;为复杂的子系统调用提供一个统一的入口&#xff0c;降低子系统与客户端的耦合度&#xff0c;且客户端调用非常方便。 示例 自…

让小程序动起来-轮播图的两种方式--【浅入深出系列003】

浅入深出系列总目录在000集 如何0元学微信小程序–【浅入深出系列000】 文章目录 本系列校训学习资源的选择啥是轮播图轮播图的关键代码最常见的轮播图代码便于理解的轮播代码两种轮播代码的比较 实际操练第一步&#xff0c;就是找到文件。第二步&#xff0c;先改动一下最显眼…