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

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(使用前将#替换为@)

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

  • 警告:引用名称“xxx”不明确

    我想知道为什么我收到 refname is ambigeous 的警告 这是否意味着名称以该字符串开头的分支不超过两个 但这里没有 Thanks git checkout B03799 warning refname B03799 is a
  • 如何防止克隆我的 github 存储库?

    我正在尝试找到一种方法来防止从 github 存储库克隆 例如 我有一个私有存储库 有些人在该存储库中工作 在公司计算机中 团队中的每个人都设置了授权级别 当我在 github 上为某个用户设置授权时 该存储库可在他 她自己的 github
  • git 从存储中删除文件

    我有一个藏匿处 里面有一堆文件 但由于文件冲突 我无法应用我的存储 我已经在我的存储中发现了有问题的文件 我想将其删除 如何从存储中删除单个文件而不破坏整个文件 存储是一次提交 或者实际上是两次甚至有时是三次提交 并且您无法更改提交 那么
  • 如何将一个文件存储库上传到 Gist,并保留历史记录?

    我的计算机上有一个包含单个文件的 Git 存储库coins py 我如何才能将其作为 Github 上的要点来保存历史 这其实很简单 您可以将现有历史记录移动到 Gist 存储库中 就像将其移动到任何其他存储库中一样 创建要点 只需输入一些
  • 将两个单独的功能分支合并到同一个主分支中[重复]

    这个问题已经存在了 我们正在努力发布 2 个远程功能分支 F2 和 F3 我们如何处理F3来创建发布 提案1 简单地合并F3进入开发 提案2 第一次合并开发进入F3 包括F2的变化 然后合并进入发展 这两种方法之间有什么实际差异 是否有客观
  • 如何在 git 交互式 rebase 中将提交与下一个提交合并?

    git rebase i允许通过以下方式将提交与前一个提交合并squash or fixup 这两个选项都需要至少一次提交pick ed 当一个人想要使用第一个提交但丢弃其提交消息时 情况怎么样 换句话说 如果我希望第一个提交与后续提交合并
  • 如何使用 git 撤消所有空白更改

    我有一个 git 存储库 我在其中本地替换了很多文件 git status 现在显示许多修改的文件 有些是 真正修改过的 其他的只是行结尾不同 我希望那些仅通过行结尾不同的内容消失 git重置它们 但是 我似乎找不到 linux pipin
  • Git-svn:批量删除孤立的远程分支

    我正在处理的 SVN 项目 通过 git svn 有经常创建的分支 然后与主干重新集成 然后删除 现在项目大约有10个分支没有被删除 但是在git中 gitbranch r显示大约有50个 我可以一次删除这些 检查它们是否仍然存在于 svn
  • 无法快速删除 Git 中的许多文件

    我删除了 Git 分支中的 777 个文件新功能 by rm example 我愿意承诺 Git 要求我手动删除每个已删除的文件 git rm file 对于所有名称不相似的 777 个文件 编写上述命令将花费大量时间 如何删除我的 Git
  • 为什么 cmake 在 git commit 后编译所有内容

    假设我有时在 Linux 上使用 cmake 2 8 编译一段代码 我更改了一个文件 my changed file 运行 cmake 并且只构建了这个文件 到目前为止 一切都很好 现在我想提交这个 git add my changed f
  • git reword 在变基期间显示合并冲突,但是 pick 工作正常

    我正在尝试用很少提交的另一个分支来重新建立一个分支 虽然提交包括合并提交 但我可以使用以下命令成功地对其进行变基git rebase i r m
  • 如何从 git 存储库中删除作者?

    如果我创建一个 Git 存储库并公开发布它 例如在 GitHub 等上 并且我收到存储库贡献者的请求 无论出于何种原因删除或隐藏他们的名字 有没有一种方法可以轻松做到这一点 基本上 我有这样的请求 可能想将他们的姓名和电子邮件地址替换为 匿
  • 无论我做什么,我都无法推送我的代码并不断收到相同的错误

    我正在尝试将代码推送到远程分支 但不断收到此错误 rejected non fast forward error failed to push some refs to email protected cdn cgi l email pro
  • 詹金斯钩子不工作 - 詹金斯位桶

    您好 我正在使用 jenkins 和 bitbucket 当我向 bitbucket 存储库提交任何内容时 我想触发 jenkins 中的构建 在詹金斯 我创建了一个名为test 1 在配置部分Build Triggers我勾选的部分Tri
  • 切换到工作区并在 Xcode 中添加 CocoaPods 后提交 git 吗?

    我刚刚在 Xcode 5 中将 CocoaPods 添加到我当前的项目中 当然 CocoaPods 创建了一个工作区 并且我已在 Xcode 中启动了该工作区 我在工作区中看到了我的项目和 Pods 项目 我的项目从第一天起就处于源代码控制
  • 防止在 Git 中签出

    我目前正在研究使用 Git 管理 OpenInsight 应用程序的源代码 由于 OI 代码存储在数据库表中 因此需要进行一定量的手动工作才能将源代码导出为文本 反之亦然 到目前为止 我已经成功地使用 Git 挂钩自动化了很多这项工作 但是
  • Git 查找第一个非本地提交

    有关的 列出尚未推送到源的 Git 提交 https stackoverflow com questions 3080509 list git commits not pushed to the origin yet git rev par
  • 通过 cron 进行 git 推送

    我正在尝试运行git push来自 cron 当我在 shell 上以交互方式执行命令时 一切顺利 从我的用户的 crontab 运行命令时 cron 会传递错误消息 Permission denied publickey 我认为这与查找或
  • 反向合并具有干净历史记录的缝合功能分支

    我有这个 d0 f1 d1 d2 f2 d3 merge d4 f3 merge
  • Git 将分支从一个远程推送到另一个远程?

    我设置了以下遥控器 git remote korg rorg 以及以下分支 git branch a no branch remotes korg gingerbread remotes korg gingerbread release r

随机推荐

  • 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