Mercurial 撤消最后一次提交

2024-05-23

如何撤消 Mercurial 中上次意外提交(未推送)的更改?

如果可能的话,最好使用 TortoiseHg 来实现这一点。

Update

在我的具体案例中,我提交了一个变更集(未推送)。然后我从服务器上拉取并更新。通过这些新的更新,我决定我的上次提交已过时,我不想同步它。如此看来,那hg rollback不完全是我正在寻找的,因为它会回滚拉取而不是我的提交。


One way would be hg rollback http://www.selenic.com/mercurial/hg.1.html#rollback (deprecated as of Hg2.7, August 2013)

请用hg commit --amend http://www.selenic.com/mercurial/hg.1.html#commit代替rollback纠正上次提交中的错误。

回滚存储库中的最后一个事务。

When 承诺 http://www.selenic.com/mercurial/hg.1.html#commit or merging https://www.mercurial-scm.org/wiki/Merge, Mercurial 添加了变更集 https://www.mercurial-scm.org/wiki/ChangeSet最后进入。
Mercurial 会保存事务日志,其中包含事务之前所接触的每个文件的名称及其长度。中止时,它将每个文件截断为其先前的长度。这种简单性是制作的好处之一revlogs https://www.mercurial-scm.org/wiki/Revlog仅附加。事务日志还允许撤消操作。

See TortoiseHg 恢复部分 http://tortoisehg.bitbucket.io/manual/1.0/recovery.html:

这个线程 http://www.selenic.com/pipermail/mercurial/2009-July/026834.html还详细说明了之间的区别hg rollback and hg strip:
(由马丁·盖斯勒 https://stackoverflow.com/users/110204/martin-geisler谁也对 SO 做出了贡献)

  • 'hg rollback' 将删除最后一笔交易。事务是数据库中常见的一个概念。在 Mercurial 中,我们在运行某些操作时启动事务,例如提交、推送、拉取......
    当操作成功完成时,事务被标记为完成。如果发生错误,事务将“回滚”,并且存储库将保持与之前相同的状态。
    您可以使用“hg rollback”手动触发回滚。这将撤消最后一个事务命令。如果 pull 命令将 10 个新变更集带入不同分支上的存储库,那么 'hg rollback' 将把它们全部删除。 请注意:有没有备份当您回滚事务时!

  • 'hg strip' 将删除变更集及其所有后代。这 变更集保存为捆绑包,如果您可以再次应用它 需要他们回来。

永远的冬天 https://stackoverflow.com/users/1286571/foreverwintr评论中建议(2016年,5年后)

您可以通过首先 hg 忘记它们来“取消提交”文件,例如:hg forget filea; hg commit --amend,但这似乎不直观。
hg strip --keep https://stackoverflow.com/a/19064016/6309对于现代汞来说可能是更好的解决方案。

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

Mercurial 撤消最后一次提交 的相关文章

  • 如何远程在BitBucket上创建存储库?

    我想在 Bitbucket 上使用 hg 命令从本地计算机创建存储库 而不是在 Bitbucket 上手动创建存储库 是否可以 我通过curl 命令使用REST API 执行了以下操作 gt curl k X POST user user
  • hg 存档到远程目录

    有没有办法通过 SSH 将 Mercurial 存储库存档到远程目录 例如 如果可以执行以下操作 那就太好了 hg archive ssh email protected cdn cgi l email protection path to
  • 如何将 N 个本地最顶层提交转换为 MQ 补丁?

    我想将我的最后一次提交安排为 MQ 补丁 所有提交都是本地的 从不推送到服务器 但并非所有本地提交都会被转换 假设我进行了 10 次提交 从未推送 现在我希望将最后 5 次提交转换为补丁 我该怎么做 简洁版本 hg qimport r 5
  • 为什么这段 C# 代码不起作用?我正在尝试将 shell 的输出读取到 TortoiseHG (Mercurial)

    我正在尝试让 Mercurial 在我的 C wpf 应用程序的 shell 中运行 我的目的是将输出检索到字符串中 以便我可以解析它 对我来说不幸的是 hg exe 来自 tortoiseHg 似乎不会通过下面的代码返回任何内容 其他 e
  • 当主干/分支/标签结构混乱时,如何从 Subversion 迁移到 Mercurial?

    我想将存储库从 Subversion 转换为 Mercurial 但是当我最初设置存储库时 我以最懒的方式完成了它 随着时间的推移 该结构不断变形和恶化 此时已有 5 年历史 尽管如此 我还是想保留尽可能多的历史 即使我必须弄脏并手动将东西
  • 将 CVS 升级到 git/hg 的技巧?

    我们仍然使用 CVS 我使用 git 和 hg 供我个人使用 尽管我对这两个工具仍然是新手 但我意识到它们更现代 更好 更快 分布式等 只是每个人都如此习惯 CVS 以至于我觉得如果我是推荐并实际将我们当前的 CVS 服务器升级 移植 转换
  • 在 Mercurial 中配置 eol 扩展时出现问题

    我正在尝试将 UNIX 托管的 Mercurial 存储库克隆到 Windows 计算机 我希望使用eol扩展名 以便我在服务器上以 LF 结尾的文本文件在克隆到 Windows 计算机时具有 CRLF 以前我用过win32文本扩展效果很好
  • hg Convert --authors errorUsers <-- 文件的格式是什么?

    Related here https stackoverflow com questions 732819 can i change the username on a mercurial changeset 757604 757604 指
  • 使用 Windows 网络共享目录时 Hg 存储库损坏

    我希望我能在这里得到一些帮助 因为 SO UX 比 Mercurial 邮件列表更好 多年来我一直在家里愉快地使用 Mercurial 我还将它与 Bitbucket Cloud 一起用于一些更严肃 但仍然是爱好 的项目 去年 我将我的团队
  • 如何让 mod_wsgi 在 Mac 上运行?

    几个小时以来 我一直在尝试在 Mac 上安装最新版本的 mod wsgi 3 3 我使用的是 Snow Leopard 并且有系统附带的 Apache Apache 2 2 15 和 Python 2 6 1 r261 67515 版本 我
  • 本地提交推送到中央服务器

    在工作中 我们使用 perforce 并被鼓励定期对其进行承诺 我对此很满意 然而 我想运行像 Mercurial 这样的东西 这样我就可以在本地提交正在进行的工作并且不一定编译 运行的东西 然后从中定期提交到中央 perforce 服务器
  • Mercurial日志接口

    我一直在浏览 hginit com 上的教程 但我发现了一个相当不方便的方面hg log特征 基本上 当我输入它时 我会在顶部看到最新的更改 在底部看到最旧的更改 但这很烦人 因为大多数时候 您希望看到最新的修订版 所以 假设我有 100
  • Mercurial:带参数的别名

    我想创建一个别名 以便在运行时 hg pushbranch lt
  • hg 语法的作用是什么:提交 A 是否可以从提交 B“到达”

    我的存储库的历史非常复杂 我经常发现自己想知道过去的某个提交是否 在 或 可从 某个修订 通常是我的头脑之一 到达 我该怎么做呢 您可以使用转速集语法 http selenic com hg help revsets 假设您想询问修订版 4
  • Mercurial .hgignore 负向前瞻

    使用 Mercurial 我需要忽略除名为 keepers 的某个目录中的文件之外的所有文件 从表面上看 使用 Regex 和 Negative Lookahead 似乎很容易 然而 尽管我能够在 Regex Buddy 和其他工具中验证我
  • 如何使用 Mercurial 忘记所有已删除的文件

    我是 Mercurial 的新手 在清理项目中的图像文件夹后 我显示了大量文件 在 汞状态 中 我可以为每个输入 hg忘记 但必须有一个更简单的方法 那么我怎样才能告诉 Mercurial 忘记文件夹中所有已删除的 状态 文件呢 如果您也可
  • 如何在 *Windows* 中将 Mercurial 存储库转换为 Git? [复制]

    这个问题在这里已经有答案了 可能的重复 在 Windows 上将 Mercurial hg 存储库转换为 Git 7 https stackoverflow com questions 3267232 converting a mercur
  • 如果在不同的分支上,为什么我不能重新建立源变更集的祖先?

    我想知道为什么以下模式不可能 创建了一个本地功能分支 minor feature 不打算与世界共享 后 我想将其上的工作重新建立到一个众所周知的分支 稳定 的尖端 然而我发现 在稳定版自从分支以来没有取得任何进展的情况下 rebase 找不
  • 如何使用 Visual Studio (vsdiffmerge) 作为 SourceTree for Mercurial 中的外部 diff 工具?

    我使用 Mercurial 作为源代码管理 并使用 SourceTree 来管理它 我想使用 Visual Studio 的内置差异和合并工具 vsdiffmerge 来比较文件 但这不起作用 我目前正在使用以下内容 差异命令 C Prog
  • hg 或 git 中的两个完整目录/项目之间存在差异?

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

随机推荐

  • C# 静态和常量变量内存

    对 C static const 成员 局部变量有疑问 只是想知道在 C 中分配给未使用的 static const 成员 局部变量的内存会发生什么情况 在以下示例场景中如何回收内存 问题是关于静态和常量变量的内存行为 考虑每个应用程序域的
  • Visual Studio 2012 不断显示升级报告

    我有一个从 VS 2010 和 SharePoint 2010 迁移的 SharePoint 2013 解决方案 每次在 VS 2012 中加载时都会给我一份升级报告 同时我还没有用 VS 2010 打开它 此外 所有源代码文件都受到写保护
  • ActiveAdmin 注册页面和资源列表

    在使用ActiveAdmin register page and ActiveAdmin register 如何获取注册页面和资源的列表 假设您使用的是默认命名空间 admin 您可以对 ActiveAdmin 0 6 1 执行以下操作 r
  • php隐藏所有错误[重复]

    这个问题在这里已经有答案了 隐藏的最佳做法是什么allPHP 错误 因为我不想向用户显示错误 我尝试过使用 htacess通过输入代码php flag display errors off在那里 但它返回给我一个500 error 还有其他
  • 在 C# 中将正数转换为负数

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 您可以将负数转换为正数 如下所示 int myInt System Math Abs 5
  • 在两个可移动 uiview 之间画线

    我有一个带有节点的 滚动视图 UIViews 可以拖动 我正在尝试在选定的之间绘制边缘UIViews使用 calayer 但我不知道当视图位置发生变化时如何重新绘制线条 In my viewControllerI 类在节点数组中添加第一个和
  • html 图像 src 调用 javaScript 变量

    这是我的代码 我想问 我怎样才能做到这一点 img src img apple 我一直在尝试使用 call 函数和 document onload 但它根本不起作用 有人可以救我吗 我假设你只是想用 javascript 更新图像 src
  • 如何强制 tsc 忽略 node_modules 文件夹?

    我正在使用 tsc 构建任务 不幸的是 我总是从节点模块文件夹中收到相同的错误 Executing task node modules bin tsc cmd watch p tsconfig json lt node modules ty
  • 有没有办法在 React 中自动播放音频而不使用 onClick 事件?

    我在尝试在 componentDidMount 中播放音频时收到此错误 未捕获 承诺中 DOMException play 失败 因为用户没有先与文档交互 componentDidMount document getElementById
  • 使用 django-rest-framework 设置对象级权限

    尝试使用 django rest framework 最干净 最规范地管理 django guardian 对象级权限 我想将对象的读取权限 module view object 分配给在执行 POST 时发出请求的用户 我的基于阶级的观点
  • 由于 MIME 类型而导致资源被阻止?

    多年来我已经成功地包含动态创建的 javascript 文件 这是一个例子 https granadainfo com sups php locs 95 https granadainfo com sups php locs 95 正如你所
  • WebApi 自定义 JsonConverter 未调用

    我为 Guid 实现了一个自定义 JsonConverter 如果我在像这样序列化的类的属性 Guid 类型 上声明它 JsonConverter typeof JsonGuidConverter 然后它被调用并且工作正常 但是 我想 自动
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • OpenShift Git 克隆错误

    我是 OpenShift 的新手 我有一个问题 当我做 rhc app git clone mynewapp Your public ssh key must be uploaded to the OpenShift server Woul
  • 如何在 iPad 应用程序上禁用横向方向?

    我创建了一个全新的单视图 iOS 通用 Swift 应用程序 然后 我在应用程序设置中取消选中 横向左 和 横向右 我在 iPhone 上运行了它 万岁 无论我如何旋转手机 它都会保持纵向模式 然后我在 iPad 上运行它 它会旋转到任何内
  • 在 SQL Management Studio 2012 中调试

    我正在使用 Management Studio 2012 但无法调试任何 SQL 代码 在我点击 调试 按钮后 左侧没有看到任何绿色箭头 并且我的 SQL 对象都没有加载到内存中 当我将光标移到我设置的断点上时 我收到此消息 The bre
  • 是否可以在回发时禁用 f:event type="preRenderView" 侦听器?

    进行回发时是否可以 禁用 触发此操作
  • INTEGER 到 DATETIME 的转换与 VB6 不同

    我正在查看一些遗留的 VB6 代码 比我的时代早很多年 它对 SQL 2005 数据库运行查询 它提供了日期限制WHERE子句 其中日期作为整数值给出CLng VB6 中的日期 e g WHERE SomeDateField gt 4006
  • 仅使用 git 存储未暂存的更改(不是 --keep-index)

    首先 我确实知道 keep index 这不是我想要的 因为它仍然隐藏着all更改 但将暂存的更改保留在工作树中 如果可能的话 我只想存储未暂存的文件 而无需再次添加所有更改git stash patch 如果您想存储索引 已暂存的内容 和
  • Mercurial 撤消最后一次提交

    如何撤消 Mercurial 中上次意外提交 未推送 的更改 如果可能的话 最好使用 TortoiseHg 来实现这一点 Update 在我的具体案例中 我提交了一个变更集 未推送 然后我从服务器上拉取并更新 通过这些新的更新 我决定我的上