git 文件恢复与项目还原:008

2023-11-10

1. 【文件恢复】:将文件恢复到上一次提交的状态

注意:新建且没有提交的文件无法使用文件恢复

命令:

git checkout -- 文件名

假如我们的一开始是这样的,这是没有报错的状态文件

 然后我添加了一段内容, 比如我添加这段内容项目报错了, 我需要恢复到没有报错的状态

方法一:代码比较,找到修改的内容将其修改回来,这种方法只适用修改比较少的情况。这种方法不做演示

方法二:文件恢复,将文件恢复到未被修改的状态

首先使用git status查看一下状态, 可以看到这个文件是未被追踪状态

然后可以使用命令:git checkout -- test_file.txt  将文件恢复到未被修改的状态

1.1:撤销追踪:对于那些已经使用了git add 的文件, 这时候是无法对文件进行恢复的,需要将文件撤销追踪才能对文件使用恢复功能

假如我们对文件进行一个修改, 并对他使用 git add 命令

这个时候使用  checkout 命令是无法起作用的,如下,文件还是无法恢复到未被修改状态

 这个时候就需要使用命令 git reset HEAD 文件名  对它进行追踪撤销。

 然后使用 git status 命令查看当前文件状态,可以看到该文件是未添加到缓存区一个状态, 这个时候就可以对这个文件使用 checkout 命令来恢复了

恢复命令,可以看到文件已经被恢复了

2. 【版本还原】

命令:

git reset -- hard DEAD^  回退到上一个版本

git reset -- hard DEAD^^  回退到上上一个版本

git reset -- hard  版本号  指定退回到指定版本(注意不能使用HEAD。且一旦回退到指定版本, 那指定版本之前的版本都会消失,所以不建议使用)

git checkout 版本号 -- 文件名  将指定文件退回指定版本(不会删除历史版本)

git checkout 版本号 -- .   将所有文件回退到指定版本(不会删除历史版,版本回退时建议使用这个命令,要注意的是文件恢复命令,版本号还是原来的版本号,版本描述也是原来的版本描述)

首先查看一下版本号:git log --oneline  如下可以看到,有5个版本号,当前项目一共有5次提交记录。这个是从下往上来排序的

回退到上一个版本:git reset --hard HEAD^   (haed是强行的意思、HEAD是指针的意思,这里回退到上一个版本,所以加^)

回退到上上个版本也是一样,这里就不再演示:git reset --hard HEAD^^

不建议使用(因为指定版本之前的版本会消失):退回到指定版本,假如我想回退到“描述信息”这个版本,这时就可以使用命令:git reset --hard 版本号

建议使用:git checkout 版本号 -- .(回退到指定版本,之前的版本不会消失,注意, 这个实际上是文件恢复,将所有文件恢复到指定版本,版本号不会更新,版本描述也不会更新):

git checkout 版本号 -- 文件名    (将指定文件回退到指定版本,这里就不演示了)

git checkout 版本号 -- .    (将所有文件回退到指定版本,这里就不演示了)

完毕!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git 文件恢复与项目还原:008 的相关文章

  • 如何使用“gem install”命令从私有 GitHub 存储库安装 gem

    如何在本地安装托管在 GitHub 上的私人存储库中的 gem 特别是 我们通过gem install命令而不是在 Bundler 中使用 因为它是一个命令行工具 我尝试这样做 gem install githubname repo s h
  • 如何在本地快速拉取拉取请求

    在合并拉取请求之前 我想在本地快速拉取请求并运行测试并测试一些内容 我还不想点击 gihub 合并拉取请求 我以为滑轮会有帮助http ejohn org blog pulley http ejohn org blog pulley 但我收
  • 如何使用 sourceTree 进行推送?

    我正在使用 sourceTree 管理 Unity 项目 版本 4 6 3 我只是想返回到上一次提交 右键选择 将当前分支重置到此提交 在使用模式中选择 硬 然后放回上一次提交 之后 我尝试去推 但没有成功 抱歉 当时我忘记了错误 之后 我
  • 如何将普通的 Git 存储库转换为裸存储库?

    如何将 普通 Git 存储库转换为裸存储库 主要区别似乎是 在普通的 Git 存储库中 你有一个 git存储库内的文件夹 包含构成工作副本的所有相关数据和所有其他文件 在裸露的 Git 存储库中 没有工作副本和文件夹 我们称之为repo g
  • 如何查看 github 的 SSH 密钥?

    我最近收到一封来自 Github 的电子邮件 要求我检查我的 SSH 密钥 请检查您的钥匙并确保您 认出他们 如果您有任何疑问 请拒绝钥匙并 上传新密钥 如何在 ubuntu 11 10 上使用 git 检查我的密钥 您可以按照 GitHu
  • Eclipse 与外部 src 和 Web 内容文件夹链接或映射

    首先这不是问题但是我遇到的问题的解决方案浪费了4 5个小时来找到解决方案 请让我知道是否有更好的替代方法来使用 eclipse 项目管理外部 src 文件夹 我正在使用版本控制系统 GIT 来管理我的项目 还使用外部 Git 客户端 Sou
  • 有人熟悉 git 错误“缺少对象 0000000000000000000000000000000000000000 for refs/heads/...”吗?

    我们正在运行 git v1 7 1 并配置了 gitweb 我们也使用 gitolite 进行管理 但我不认为这与这个问题有密切关系 有时我们会在 Apache 日志中收到如下错误 missing object 00000000000000
  • 如何使用 vim 作为“git show”编辑器?

    全部如所述如何使用 vim 作为 git log 编辑器 https stackoverflow com questions 16666009 how do i use vim as git log editor不适用于 git show
  • 无法从我的电脑上使用 traefik 后面的 gitlab 进行 git 克隆

    这是我的 gitlab 和 traefik 配置 version 3 7 services gitlab web image gitlab gitlab ce latest restart always hostname gitlab ro
  • 如何在Windows上分离“Git bash”中启动的“git gui”?

    例如 我开始 git bash 我导航到某个目录 I start git gui 我关闭控制台窗口或按 Ctrl C Git gui 的窗口消失了 即使我用过git gui disown 即使当我按 Ctrl C 时它不在前台 如何正确分离
  • Git:压缩 master 上提交的最简单方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 git 将最后 X 次提交压缩在一起 https stackoverflow com questions 5189560 how can i squash my last x commits
  • 致命:不是 git 存储库(或任何父目录):.git [重复]

    这个问题在这里已经有答案了 当我尝试推送 github com 上的现有存储库时 当我输入命令时 网站提示我将其输入终端 我收到了以下致命错误消息 Not a git repository or any of the parent dire
  • git Blame:合并后正确的作者

    GIT 合并引入了新的提交 这会导致 git Blame 问题 合并的行似乎是由进行合并的开发人员提交的 我可以理解这种情况冲突的变化 因为他解决了冲突 但是有没有办法让非冲突线路不发生这种情况呢 一些 git Blame 的选择 如果没有
  • 按时间顺序将多个文件夹提交到 git 中

    我有数百个网站备份 每个文件夹一个 我想将它们放入 git 存储库中 每个备份作为一个版本 这些变化主要涉及图像文件和每天 2 个数据库备份 大小约为 25 GB 并且不断增加 有没有办法告诉 git 获取其中一个文件夹并将其提交到存储库中
  • 未能将一些参考推送至 [email protected]

    当我尝试推送到 Heroku 存储库时收到此错误 我已经设置了autocrlf false在gitconfig中 但这个问题仍然存在 我也尝试过这个解决方案here https stackoverflow com questions 566
  • 我在哪里? *(无分支)

    我已经熟悉了创建 合并和删除分支 我想知道我在哪里 这样我就不会将工作提交到错误的分支 我用git branch a看看我有哪些分支 我认为星号 显示我当前所在的分支 当我得到以下信息时 这意味着什么 no branch master or
  • 如何签出仅在“git ls-remote”中列出的分支?

    我遇到了无法切换到仅列出的分支的情况git ls remote 这是详细信息 我分叉了一个 github repoA 作为 repoB 创建了自己的分支并将其推送到 ComputerA 中的 repoB 在 ComputerB 中 我将分叉
  • 将“复制到剪贴板”添加到 GitHub markdown 的简单方法?

    具体来说 我有一些用于安装的代码块 我希望用户能够快速将其复制并粘贴到终端中 我想要一个用于代码块 复制到剪贴板 的按钮 由于 git 克隆 URL 有一个 复制到剪贴板 按钮 我想知道我是否可以利用该按钮 或者如果不能 是否可以将一些相对
  • 为什么“git描述-dirty”在描述干净结帐时添加“-dirty”后缀?

    我刚刚发现 dirty选项git describe看起来它应该做一些非常有用的事情 即在输出中附加一个后缀git describe当工作树脏时 但是在我的一些存储库上似乎并非如此 git status On branch 8 30 noth
  • SSL 适用于浏览器、wget 和curl,但不适用于 git

    我有一个网站 用于托管 redmine 和几个 git 存储库 这非常适合 http 但我无法使用 https 进行克隆 即 git clone http mysite com git test git 工作正常 但是 git clone

随机推荐

  • USB数据接口类型

    为了方便下载数码相机记忆体中的文件 数码相机和PC的连接有多种方式 常见的就是USB接口和IEEE1394火线接口 USB与IEEE1394比较 两者的传输速率不同 过去 很多人都会选用IEEE1394作传输文件用 因为其流量比USB1 1
  • 开环与闭环传递函数波特图的意义

    注 本文默认读者都是控制类专业 先复习一下奈氏曲线和奈氏判据 以及波特图 下面进入今天的主题 开环与闭环传递函数波特图的意义 分为如下三个部分 开环波特图的意义 闭环波特图的意义 为什么大多研究开环波特图 开环与闭环传递函数 一个典型的控制
  • stm32学习—库函数总结

    库函数总结这一章 描述了一般stm32开发的流程 一些常用库函数的设置 一般一开始是使用结构体进行数据的初始化 然后通过使用的途径进行划分 比如常用的数据的输出和输出 这在大部分的外设中都是大量涉及的 再接是辅助我们进行逻辑代码的设计的状态
  • 如何在Java项目中定义并调用自己编写的native方法?

    如何在Java项目中定义并调用C C 编写的native方法 开发工具 编写测试的java代码 编写C 代码 将dll文件链接到java项目中 总结 开发工具 IntelliJ IDEA 2020 用来编写java代码 Visual Stu
  • 关于Markdown表格中如何进行换行、合并单元格

    关于Markdown表格中如何进行换行 合并单元格 1 表格中内容对齐 换行 设置对齐方式 表格内容换行 2 表格中单元格的合并 合并表格行 合并表格列 综合使用 1 表格中内容对齐 换行 常规表格使用 一般我们都会这样用表格如下 姓名 年
  • Kruskal算法求解最小生成树

    最小生成树是一个连通图 什么是连通图 强 连通图详解前面介绍了 图存储结构 本节继续讲解什么是 连通图 前面讲过 图中从一个顶点到达另一顶点 若存在至少一条路径 则称这两个顶点是连通着的 例如图 1 中 虽然 V1 和 V3http c b
  • 空间相关分析(三) 局部莫兰指数的理解与计算

    在上篇中 我们详细地阐述了全局莫兰指数 Global Moran I 的含义以及具体的软件实操方法 今天 就来进一步地说明局部莫兰指数 Local Moran I 的含义与计算 首先说明一下进行局部相关分析的必要性 在全局相关分析中 如果全
  • Java8新特性之时间API

    本篇主要介绍Java 8中新引入的全新的一套时间API Java 8之前的Date类的缺陷 java util包和java sql包中都有一个Date类 区别是util包中的Date类存储的是年月日时分秒 而sql包中的Date只存储年月日
  • 小程序随机生成文字卡片文案海报,带分享保存

    概述 文字随机生成 更换头像 生成卡片 保存卡片 分享卡片 详细 文字随机生成 更换头像 生成卡片 保存卡片 分享卡片 数据是在data js中 随机文案获取 demo直接在微信开发者工具可以运行 index xml 代码
  • python字典中的键是什么_python字典中的键是什么

    字典的键 字典中的值没有任何限制 可以是任意Python对象 即从标准对象到用户自定义对象皆可 但是字典中的键是有类型限制的 1 不允许一个键对应多个值 必须明确一条原则 每个键只能对应一个项 也就是说 一键对应多个值是不允许的 像列表 元
  • 银联商务MISPOS接口开发demo 需要调用POSINF.DLL

    1 接口文档 1 1 无gmc界面接口 dll ocx dll调用 posinf dll 函数名为 int bankall char request char response 其中第一个参数为传入参数 ocx调用 umsocx ocx t
  • Mavenx学习笔记二十二:Maven仓库(从仓库解析依赖的机制)

    Maven仓库 从仓库解析依赖的机制 Maven是根据怎样的规则从仓库解析并使用依赖构件的呢 当本地仓库没有依赖构件的时候 Maven会自动从远程仓库下载 当依赖版本为快照版本的时候 Maven会自动找到最新的的快照 这背后的依赖解析机制可
  • gcc编译提示错误“multiple definition of“

    在做OS实验的过程中 由实验书给出的代码 仍然无法通过编译 查到了很多方法 比如条件编译等等 但经过多次尝试后发现并没有效果 终于在网上找到了一篇能够解决问题的文章 原因是 gcc版本太高 需要降低gcc版本 查看当前gcc版本 gcc v
  • CUDA协作组详解

    CUDA中的协作组 1 协作组简介 Cooperative Groups 是 CUDA 9 中引入的 CUDA 编程模型的扩展 用于组织通信线程组 协作组允许开发人员表达线程通信的粒度 帮助他们表达更丰富 更有效的并行分解 从历史上看 CU
  • 关于C++中的条件编译

    2019独角兽企业重金招聘Python工程师标准 gt gt gt C 中的条件编译 分为三种形式 分别如下 1 ifdef define name else endif 这种形式的条件编译 意思大概就是 如果定义了宏define name
  • Typora+PicGo-Core+腾讯云COS 图床配置教程

    typora PicGo Core 腾讯云COS 图床配置教程 前言 1 typora PicGo Core 腾讯云COS 图床 分别是什么 为什么把他们组合在一起 typoa是一个能做Markdown的一个软件 我们可以在里面编辑文本 添
  • 掌优始终坚持技术价值与社会价值并重

    上公交车时无需任何操作 乘客只需将脸对准智能人脸识别设备即可 刷脸乘车 已不是新鲜事 全国各省市都在紧锣密鼓地推进 智慧交通 的建设 在我国上海 北京 济南 广州等地区 乘客可以直接在地铁站的人脸识别终端或自助票务机进行注册和拍照上传 之后
  • Redfish接口测试

    Redfish接口测试 1 Postman使用 2 登录BMC 获取session 3 获取服务器资产信息 4 服务器上下电 5 创建BMC用户 6 删除BMC用户 7 获取指定BMC用户的信息 8 修改指定BMC用户信息 9 获取指定BM
  • SpringBoot 集成XxlJob定时任务使用过程

    POM文件
  • git 文件恢复与项目还原:008

    1 文件恢复 将文件恢复到上一次提交的状态 注意 新建且没有提交的文件无法使用文件恢复 命令 git checkout 文件名 假如我们的一开始是这样的 这是没有报错的状态文件 然后我添加了一段内容 比如我添加这段内容项目报错了 我需要恢复