恢复到特定提交而不丢失历史记录

2024-01-11

我知道这类问题有很多重复项,但我想打开一个新问题,因为我没有在所有其他问题中找到按照我想要的方式执行此操作的最佳方法的解释。

我知道我可以通过执行以下操作来恢复并保留历史记录:

git reset --soft c14809fa

我想恢复development分支并将历史记录保存在不同的分支上。

如果我结帐development在我恢复提交之前到一个新分支 - 例如

git checkout -b beforeRevert

然后我将签回开发分支并进行重新审核(因为我想继续处理我已恢复到的提交中的数据)

另一个分支,beforeRevert分支,将保留“恢复之前”的所有历史记录和数据,有一天会再次使用,但不会包含在当前分支中development分支?或者恢复到development分支会以某种方式影响beforeRevert branch?


如果您确定软重置或创建多个分支都不适合您的用例,您可以这样做

git diff HEAD commit_hash_to_go_to | git apply

这将在分支上的最新提交和具有所需状态的提交之间创建更改差异,并自动应用它。这只会更改文件,您的工作是将它们添加到暂存并提交结果。 如果您想尝试不同的解决方案并将更改历史记录保留在同一分支内或避免增加本地分支,这可能很有用。

如果遇到“无法在没有完整索引行的情况下应用二进制补丁”错误,请添加 --binary 标志:

git diff HEAD commit_hash_to_go_to --binary | git apply

在执行此操作之前,请确保您没有未提交的更改 - 否则补丁将不会被应用(它是原子的,所以要么所有更改都会通过,要么没有,所以您不会最终处于不一致的状态)

注意:这只是更改文件并将其标记为已修改。它不会改变提交历史记录或创建新的提交

提示:如果您只想撤消最后一次提交,您可以这样做

git diff HEAD HEAD~1 | git apply

“~1”是您想要返回的提交量。在这种情况下,只有 1 次提交。

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

恢复到特定提交而不丢失历史记录 的相关文章

  • 如何获取第一次提交的 Git diff?

    我创建了一个存储库 在其中创建了一个文件 在文件中放入了一些内容 然后提交了该文件 现在 我想查看该提交的差异 理想情况下应该显示添加的文件以及添加到其中的行 然而 git diff HEAD HEAD回报fatal ambiguous a
  • Python 无法在 git bash 命令行中工作

    Python 不会在 git bash Windows 中运行 当我在命令行中输入 python 时 它会将我带到一个空行 而不会像在 Powershell 中一样显示它已输入 python 2 7 10 它没有给我错误消息 但 pytho
  • Git守护进程克隆错误

    All 我正在按照以下指示进行操作this SO https stackoverflow com a 377293 724357答案 快速提供回购 当我跑步时git clone git ipAddr git project我得到这个输出 r
  • 使用 Subversion 进行部分提交

    鉴于我做的案例两个独立的变化 in one文件 例如 添加了一个新方法并更改了另一个方法 我经常不想提交这两项更改 因为one提交 但作为two独立承诺 在 git 存储库上我会使用互动模式 of git 添加 1 http linux d
  • Eventmachine start_tcp_server 无接受器 - 端口正在使用或需要 root 权限(运行时错误)

    我已经 3 天无法运行本地服务器了 重新启动我的计算机没有帮助 有几次 在反复尝试大约 40 50 次之后 它随机地起作用了 我不明白为什么 我尝试过一次不同的端口并且有效 但从那以后 没有端口有效 每次我尝试运行我的 Rails 服务器时
  • 从 master 更改为新的默认分支 git

    这是一个场景 我们有一个默认的分支 Master 我们以此为基础 创建分支并向上推等等 我们现在创建了一个Develop分支Master并将其设置为默认开发分支 我想知道的是 我现在如何知道我的 git pull 命令是否通过命令行请求默认
  • Git 中的“分支提示”是什么?

    我正在学习 Git 并阅读专业 Git 书籍 https git scm com book en v2 书中和 Stack Overflow 上有时会使用术语 分支提示 但我找不到它的含义 分支提示是分支上的最后一次提交或最近一次提交 基本
  • hg 或 git 中的两个完整目录/项目之间存在差异?

    我继承了一个最初存储在 CVS 中的项目以及所有修订 我做了相当多的编辑 并且我试图比较我在原始目录中所做的所有更改 关于添加的新文件与旧文件 hg git 是否有某种实用程序可以让我进行树差异或类似性质的操作 也就是说 新添加的文件 删除
  • 当出现错误时如何删除远程分支?

    我尝试过以下命令 但失败了 git push origin next remote error denying ref deletion for refs heads next To blah git remote rejected nex
  • git Branch -d :致命 - 无法查找 HEAD 的提交对象

    假设我在一个裸存储库 远程 中 如果我尝试使用以下命令删除分支git branch d
  • 无法从我的电脑上使用 traefik 后面的 gitlab 进行 git 克隆

    这是我的 gitlab 和 traefik 配置 version 3 7 services gitlab web image gitlab gitlab ce latest restart always hostname gitlab ro
  • 从 github 中删除子项目提交

    我有两个存储库A and B 我错误地在我的机器上将仓库 B 克隆到了 A 内 我从存储库 B 中删除了所有代码 但是当我在源上从 A 推送并合并代码时 它还显示了子项目提交B在 Github 仓库上 我想从我的 master 上删除子项目
  • Visual Studio Code 内置故事,用于查看 git 提交历史记录并对其内容进行比较

    In this https stackoverflow com questions 37899765 how can i view the git history in visual studio code 60013101 noredir
  • git Blame:合并后正确的作者

    GIT 合并引入了新的提交 这会导致 git Blame 问题 合并的行似乎是由进行合并的开发人员提交的 我可以理解这种情况冲突的变化 因为他解决了冲突 但是有没有办法让非冲突线路不发生这种情况呢 一些 git Blame 的选择 如果没有
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa
  • 从自己的 gitlab 服务器安装节点模块

    我想从我们的 gitlab 服务器安装节点模块 这是存储库的链接 http ABCD GITLAB myGroup myNodeModule git http ABCD GITLAB myGroup myNodeModule git 根据n
  • 如何关闭分支而不将其从 git 的历史记录中删除?

    我想提交并关闭其分支 而不将其从历史中删除 有了水银我会commit close branch then update转到上一个 然后继续工作 有了 git 我很困惑 没有与 Git 中关闭分支完全相同的方法 因为 Git 分支比 Merc
  • 清理远程 Git 分支

    我已经将 SVN 存储库移至 Git 可能由于多次克隆 我现在只剩下一堆看起来像这样的分支 BranchA origin BranchA remotes BranchA remotes origin BranchA remotes orig
  • Jenkins GIT 包含从未构建过的区域

    我正在尝试使用包含区域在 Jenkins 中构建我的工作 但每当选中此选项时 民意调查结果总是说未检测到任何更改 我尝试了许多不同的路径 以及使用工作区进行 不进行强制轮询 结果是轮询从未检测到任何更改 但一旦我删除这些选项 它们就会在下一
  • SSL 适用于浏览器、wget 和curl,但不适用于 git

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

随机推荐

  • Azure 数据库的密码重置

    我有一个新的 Azure 帐户 我能够以管理员身份登录 管理 页面 但我忘记了其中一个数据库的密码 我想重置该数据库的密码 我怎么做 微软似乎没有关于这方面的知识库 至少我找不到 谢谢 如果您指的是特定 Windows Azure SQL
  • 根据条件每行中第一次出现的位置

    我有下表 其中包含有序变量 table lt data frame Ident c Id 01 Id 02 Id 03 Id 04 Id 05 Id 06 X01 c NA 18 0 14 0 NA X02 c 0 16 0 17 0 53
  • 使用 iframe 停止 Comet 的浏览器抖动

    当我通过 iframe 推送使用 comet 时 当数据通过 iframe 推送时 浏览器颤动器将永远保持旋转 Lightstreamer 也在使用 iframe 但是他们如何设法让它停止呢 我发现了一个类似的帖子here https st
  • 为什么 Google Analytics(分析)显示的访问次数少于 One&One 统计数据?

    将谷歌分析结果与 one one 托管的每月统计数据进行比较显示出巨大的差异 上个月 Google 显示 1046 次访问 One one 统计数据显示 15304 次独立访问 谷歌代码位于每个页面上出现的页脚中 我知道 ga 只适用于启用
  • event.preventDefault() 或 return false 在 IE9 中不起作用

    我试图让以下代码在所有版本的 IE 中工作 就像它在其他浏览器中工作一样 a href class specificClass Click Me a Javascript specificClass click function e e p
  • Visual Studio 64 位?

    有 64 位 Visual Studio 吗 为什么不 由于多种原因 No 为何在此解释MSDN 帖子 https web archive org web 20160309232651 http blogs msdn com b ricom
  • 覆盖 WPF 中的静态资源

    我想覆盖StaticResource这是在我自己的资源字典中的不同程序集的资源字典中配置的 我尝试使用相同的密钥配置新资源 但没有成功 实际加载的资源来自所提到的程序集的资源字典 出于演示目的 我将资源称为 MyResource MyRes
  • FactoryFinder 性能/缓存不良

    我有一个相当大的 java ee 应用程序 它有一个巨大的类路径 可以进行大量的 xml 处理 目前 我正在尝试加快一些功能的速度 并通过采样分析器找到缓慢的代码路径 我注意到的一件事是 特别是我们的代码中 我们有像这样的调用的部分Tran
  • 使用管道而不提供第一个参数

    Is the gt 管道运算符总是将左侧 LHS 提供给右侧 RHS 的第一个参数 即使在 RHS 调用中再次指定第一个参数 假设我想指定要使用的变量cor library magrittr iris gt cor x Sepal Leng
  • Tensorflow Dataset API:带有 parquet 文件的输入管道

    我正在尝试使用 Dataset API 设计输入管道 我正在处理镶木地板文件 将它们添加到我的管道中的好方法是什么 我们已经发布了万能风暴 https github com uber petastorm 一个开源库 允许您通过 Tensor
  • 提示使用自定义目录查找 .cmake 文件

    在 CMake 中 有没有办法制作内置的 Find 脚本来优先考虑我们指定的自定义目录 因为特别是在 Windows 中 模块查找脚本通常无法检测到模块 例如 Visual Studio 目录 因此我通常必须手动设置外部库的路径 这非常累人
  • 颤振回调函数

    我有一个数量需要在父小部件中更新 按子小部件中的 或 图标时需要更新数量 我将回调函数传递给了子无状态小部件 但它不起作用 相反 我收到一条错误消息 指出在构建期间调用了 setstate 或 markneedsbuild 这是父小部件 c
  • 如何在第一列中应用文本左对齐,在其他列中应用文本右对齐

    我有一张桌子要设计 我该如何申请text align left 仅适用于第一列和text align right 对于其他列 这是我的表示例 http jsfiddle net gianlucaguarini hAv7P http jsfi
  • 在 Javascript 中克隆文件输入元素

    我有一个文件输入元素 需要在用户浏览并选择要上传的文件后进行克隆 我开始使用 obj cloneNode 一切正常 直到我尝试在 IE 中使用它 此后我尝试使用 jQuery 的克隆方法 如下所示 var tmp jQuery catego
  • Multipart._final 中的表单意外结束

    我有多个输入 当所有图像输入字段都填满时 上传工作正常 但如果其中任何一个为空 它会在我的服务器端引发错误 Unexpected end of form at mutipart 这是客户端 const handelSubmit e gt e
  • 如何使用 Unity 依赖注入 Web API 实现策略/外观模式

    如何告诉Unity WebApi依赖注入框架 在正确的控制器中注入正确的类 DI 项目容器 public class UnityContainerConfig private static IUnityContainer unityCont
  • PowerShell 3.0 中 [ordered] 的正确名称是什么?

    在 PowerShell 中 您可以使用方括号指定类型 如下所示 PS C Users zippy gt int IsPublic IsSerial Name BaseType True True Int32 System ValueTyp
  • 如何发送ctrl+z

    How do I convert ctrl z to a string 我将此作为 AT 命令发送到该计算机的连接设备 Basically I just to put some chars in a string and ctrl z in
  • GridView 丢失了对非索引位置中的项目的跟踪,并且许多项目不再显示

    我正在使用 UWP 应用程序FileInformationFactory检索文件对象的虚拟化向量 该向量被转换为FileInformation并显示在GridView 我想查询插入笔记本电脑的 SD 卡上的文件夹并比较该文件夹的虚拟化情况G
  • 恢复到特定提交而不丢失历史记录

    我知道这类问题有很多重复项 但我想打开一个新问题 因为我没有在所有其他问题中找到按照我想要的方式执行此操作的最佳方法的解释 我知道我可以通过执行以下操作来恢复并保留历史记录 git reset soft c14809fa 我想恢复devel