You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mercurial中是否有git checkout --patch(即-p)的等效命令?

Mercurial 中与 git checkout --patch <commit> 的等效方案

Git 的 git checkout --patch <commit> 可以交互式挑选 HEAD 与目标提交间的差异代码块(hunks)并应用到工作区,Mercurial 没有完全一致的原生单命令,但可以通过以下几种方式实现相同效果:

1. 原生命令组合(无需扩展)

通过生成差异补丁并交互式应用,完全匹配 Git 命令的逻辑:

hg diff -r . -r <目标提交> | hg patch --interactive -
  • hg diff -r . -r <目标提交>:生成当前工作区(HEAD)与目标提交的差异
  • hg patch --interactive -:从标准输入读取补丁,交互式选择要应用的 hunks

2. 使用 graft 命令(适合历史提交)

如果目标提交是仓库历史中的提交,可借助 graft 的交互式模式,加上 --no-commit 参数避免自动创建新提交:

hg graft -i --no-commit <目标提交>

-i(即 --interactive)会触发交互式选择流程,让你决定每个 hunk 是否应用到工作区。

3. 借助 crecord 扩展(精细化行级选择)

官方的 crecord 扩展提供了更细腻的交互式补丁处理能力,支持行级别的变更选择:

  1. 先在 Mercurial 配置文件(hgrc)中启用扩展:
[extensions]
crecord =
  1. 执行以下命令应用交互式补丁:
hg crecord --import <(hg diff -r . -r <目标提交>)

内容的提问来源于stack exchange,提问作者Kerrick Staley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:17:11