Mercurial恢复/退出单个文件

Gil*_*rts 28 mercurial

在Mercurial中,我有一个旧的变更集,除了对单个文件的更改之外,它都很好.如何将修改还原到该单个文件?

即使只是能够在之前的变更集中查看文件的状态也会很好,然后我可以剪切和粘贴.

我的Mercurial客户是TortoiseHg.

Zer*_*ero 13

截至TortoiseHg 2.8.1

  1. 如果出现问题,请提交
  2. 右键单击要回滚到的修订,选择"在修订时浏览"
  3. 找到您要还原到此修订版的文件,右键单击"还原到此修订版(Ctrl+ Shift+ R)"
  4. 对要还原的所有文件重复3


gep*_*ppy 12

由于TortoiseHG的风格(〜)变化,Raghuram的答案不再正确." Repository Browser "已重命名为" TortoiseHG Workbench ",但更重要的是," Revert file contents "不再是上下文菜单中的操作.

从版本2.0.4开始,您需要:

  1. 如果出现问题,请提交您当前的存储库.
  2. 在" TortoiseHG Explorer "中打开相关的变更集
  3. 在文件列表中,右键单击要还原的文件.
  4. 从上下文菜单中选择" 恢复到版本 ".
  5. 您将看到一个确认对话框,其中包含一个标记为"将所有文件还原到此修订版本 " 的复选框.确保它未经检查.
  6. 点击" 确定 ".
  7. 验证是否仅还原了该文件.如果所有内容都已还原,请更新到步骤1中创建的修订.

我第一次尝试这个,我不确定我做错了什么,但我还原了整个存储库而不是单个文件.所以,一定要确保在尝试之前提交新版本.


Rag*_*ram 7

打开Repository Browser,转到感兴趣的变更集.您将看到已更改文件的列表.选择您感兴趣的文件并单击Revert file contents


Laz*_*ger 6

CLI版本,适用于TortoiseHG的任何(新)版本

为了仅撤消变更集CSET中引入的FILE中的更改,请使用此形式的撤销

hg backout -r CSET --include FILE