git restore恢复删除文件
新版本
在 Git 2.23 版本之后,Git 引入了一个新的命令 git restore,用于简化文件恢复操作。可以用 git restore 来恢复误删除的文件。下面是详细的使用方法:
1. 恢复工作区中删除的文件(未提交)
如果文件已被删除,但还没有提交更改,你可以用 git restore 恢复文件:
git restore <file_name>
这个命令会将文件从暂存区(index)恢复到工作目录(working directory)。如果你删除了文件但还没有 git add,那么 git restore 可以帮助你直接从暂存区中恢复该文件。
2. 恢复已被暂存的删除文件
如果你已经运行了 git add,并且文件被标记为删除的状态,但还没有提交,你可以通过 --staged 选项来恢复文件:
git restore --staged <file_name>
这个命令会把文件从暂存区移回工作目录,但文件的内容不会被删除。
3. 恢复已提交删除的文件
如果你已经提交了文件的删除(即文件删除已经被包含在某个提交中),你可以从某个提交恢复文件。通常可以使用 HEAD 表示最近一次提交:
git restore --source=HEAD -- <file_name>
这个命令会从最新的提交中恢复该文件。如果你想恢复某个特定的提交版本中的文件,可以使用该提交的哈希值:
git restore --source=<commit_hash> -- <file_name>
4. 恢复所有文件
如果你希望恢复工作区中所有被删除的文件,可以使用 . 来指定所有文件:
git restore .
这个命令会恢复所有未提交的更改,包括误删除的文件。
总结
git restore <file_name>:恢复工作区中未提交的删除文件。git restore --staged <file_name>:将已暂存的删除文件恢复到工作区。git restore --source=<commit_hash> -- <file_name>:从特定的提交恢复已删除的文件。
这些命令可以帮助你快速恢复误删除的文件。如果你还没有提交更改,git restore 是非常便捷的工具。
旧版本
在 Git 中,如果你误删除了文件并且希望恢复它,有几种不同的场景和恢复方法。以下是一些常见的恢复场景及其解决方法:
1. 文件已被删除但还没有提交
如果文件被删除了但你还没有执行 git commit,可以使用以下命令恢复文件:
git checkout -- <file_name>
这个命令会从暂存区(index)恢复文件。如果文件已经被添加到暂存区并删除了,则该命令可以恢复它。
2. 文件已提交删除
如果你已经提交了删除文件的更改(即执行了 git commit),你可以通过以下命令从之前的提交中恢复该文件:
git checkout HEAD~1 -- <file_name>
其中 HEAD~1 表示恢复到上一个提交。这个命令会从上一个提交恢复被删除的文件。
如果想恢复更早版本的文件,你可以先找到该文件的提交记录,然后恢复文件:
-
找到文件的历史版本:
git log -- <file_name> -
找到你想恢复的提交的哈希值(commit hash),然后使用以下命令恢复文件:
git checkout <commit_hash> -- <file_name>
3. 使用 git reflog 恢复
如果你做了一些操作,例如 reset 或者 checkout,导致误删除文件,并且你无法通过上面的方法恢复,可以使用 git reflog 来查找文件删除前的历史状态:
-
查看 reflog:
git reflog -
找到合适的状态,恢复到那个状态的文件:
git checkout <commit_hash> -- <file_name>
4. 已删除的文件没有被暂存或提交
如果文件没有被添加到暂存区,也没有被提交,你只能依靠本地备份或文件恢复工具。Git 没有对未追踪文件进行版本控制。
希望这些方法可以帮助你恢复误删除的文件。如果你有特定场景或问题,欢迎提供更多细节以便进一步帮助。
相关文章:
git restore恢复删除文件
新版本 在 Git 2.23 版本之后,Git 引入了一个新的命令 git restore,用于简化文件恢复操作。可以用 git restore 来恢复误删除的文件。下面是详细的使用方法: 1. 恢复工作区中删除的文件(未提交) 如果文件已被删除&a…...
MacOS13虚拟机VMware Workstation Pro 16安装
资源 安装unlocker 安装虚拟机 低版本的还没有MacOS13选项,这也是我安装低版本虚拟机踩过的坑 找个教程安装就可以了 省略…自己去找找教程… 过程中我使用桥接是不行的,没有网络,后面重新下一步一步的选择默认的网络重装后就好了&am…...
docker 数据管理,数据持久化详解 一
docker镜像是分层设计的,镜像出只读,通过镜像启动的容器添加一层可读写的文件系统,用户写入的数据表都保存在这层中。 容器的数据分层目录 LowerDir:image 镜像层,即镜像本身,制度 UpperDir:容…...
【ios】使用TestFlight将app分发给测试人员(超详细)
我的环境: macos系统是Ventura 13.0 xcode是14.2(后面发现至少需要15版本的xcode才能上传app) 证书生成 可以通过xcode生成Distribution类型的证书,如果你已经有的话那就忽略,这个证书也是备案时所需的。 我是已…...
证件照小程序源码,前后端稳定运行
演示:证寸照制作 运行环境: Linux Nginx PHP >5.6 MySQL>5.6 安装步骤: 1.下载源码上传至你的服务器宝塔面板 2.直接添加站点选择源码目录,新建数据库 3.设置代码执行目录为/web 4.在浏览器中输入你的域名,会提示安装,填写…...
java白嫖同事的从身份证里面提取省市区地址详细信息的工具类代码
/*** author sunpeiyang* date 2024/10/21 16:35*/ Slf4j public class MiTaAddressExtractor {/*** 获取详细地址** param fullAddress 身份证完整地址*/public static String getDetailedAddress(String fullAddress) {String[] addressArrays spliceDetailedAddress(fullAd…...
计算机网络基本架构示例2
一、企业内部网络架构 在一个中型企业中,通常会有以下的网络架构: - 核心层:由高性能的核心交换机组成,负责快速转发大量数据。例如采用具有高带宽和冗余功能的三层交换机,确保整个网络的稳定运行。它连接着各个部门的…...
无人机之室内定位技术篇
无人机的室内定位技术是实现无人机在室内环境中精准导航和定位的关键技术。由于室内环境复杂,卫星导航系统(如GPS)无法提供有效的信号,因此需要依赖其他室内定位技术。 一、主要技术类型 基于视觉的定位技术 原理:利…...
在ubuntu20.04中输入不存在shell命令时,报错ModuleNotFoundError的解决方案
这个问题出现过好几次,每次都比较困扰,以下的解决方案比较适合: 当我输入ubuntu无法识别的命令的时候,正常来说应该提示类似于 command not found 之类的字眼,但是系统确报了如下错误: Traceback (most r…...
互联网语言 互联网开发 互联网架构
JAVA和PHP是两种广泛应用于互联网开发的编程语言,它们在多个维度上展现出显著的不同。 JAVA是一种面向对象的编程语言,以其严谨、高效的特性而著称。JAVA的语法结构复杂且规范,强调封装、继承和多态等面向对象原则,适合构建大型企…...
解决MybatisPlus updateById更新数据时将没传的数据也更新成了null
首先,MybatisPlus在调用自带的更新接口updateById时,如果没加任何配置,默认是不会将前端没传的数据也更新成null的。即MyBatisPlus不会更新传入实体中为null的字段,只会更新设置了不为null的值。 如果发现没传的也更新成null了的话…...
OpenWRT 和 Padavan 路由器配置网络打印机 实现远程打印
本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 之前有给大家介绍过 Armbian 安装 CUPS 作为打印服务器,像是 N1 盒子、玩客云,甚至是随身 WiFi 都可以通过 CUPS 来进行打印。但是有些朋友不想专门为打印机添置一个设备࿰…...
R语言机器学习教程大纲
文章目录 介绍机器学习算法监督学习Supervised Learning分类Classification回归Regression 无监督学习 Unsupervised Learning聚类 Clustering降纬 Dimensionality Reduction相关Association 强化学习Reinforcement Learning模型自由 Model-Free Methods模型驱动 Model-Based M…...
java如何部署web后端服务
java如何部署web后端服务 简单记录一下,方便后续使用。 部署流程 1.web打包 2.关掉需要升级的运行中的服务 /microservice/hedgingcustomer-0.0.1-SNAPSHOT/conf/bin/ 执行脚本 sh shutdown.sh 3.解压文件 返回到/microservice 将升级包上传到该路径&#x…...
第八课 Vue中的v-bind指令
Vue中的v-bind指令 v-bind用于属性绑定,使得属性可以动态修改 v-bind动态修改class 动态修改的class名来源于data对象,而非手动给定 基础示例 <style>div{width: 100px;height: 100px;border: 3px solid #000;}.bg {background: red;}</sty…...
基于STM32的智能电能表设计
引言 本项目设计了一个基于STM32的智能电能表系统,能够实时测量家用电器的电压、电流、功率和电能消耗。该系统集成了电压电流传感器、显示屏、通信模块等,能够实现电能测量、数据显示、数据存储和远程传输功能,适用于家庭、工业等场景的电能…...
开启学习与探索之旅,自闭症学校全托为孩子打造温馨成长环境
原文指路:http://www.zibizhengwang.com/page33.html 在广州这座繁华都市的一隅,有一所特别的学校——星贝育园自闭症儿童寄宿制学校,它如同一座灯塔,照亮了自闭症儿童的学习与成长之路。在这里,每一个孩子都被视为独…...
多线程编程简单例题(3个线程) Linux环境 C语言实现
问题:编写程序完成如下功能:程序创建2个线程,然后: 1> 主线程先打印“I am main thread”,然后睡眠2秒后,打印"main thread wake up",主线程退出 2> 第一个新线程先打印“…...
UG NX12.0建模入门笔记:1.2 鼠标的基本操作
文章目录 前言:鼠标的操作1.鼠标左键:单击—>单选;长按并滑动—>框选。2.鼠标右键:在不同的地方单击弹出不同的菜单。3.鼠标中键:滚动中键—>放大缩小【镜头拉近拉远】。4.鼠标中键:摁住鼠标中键&…...
NVME盘未格式化导致Ubuntu20.04启动慢
背景 最近公司一款产品转产,工厂组装好后,用我提供的系统镜像烧录,系统起来后发现Ubuntu20.04转圈了90秒才进入图形界面,这是不可接受的,公司老总要求当天必须解决。 定位 分析syslog 看不到系统启动时的日志&…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
CSS3相关知识点
CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...
