hg相当于git add -p?

时间:2011-10-14 08:22:04

标签: git mercurial git-add

是否存在与git add -p相当的善变?

引用man,使用-p(或--patch)选项进行git-add执行以下操作:

  

在索引和工作之间以交互方式选择补丁   树并将它们添加到索引中。这给了用户一个机会   在将修改后的内容添加到索引之前检查差异。

4 个答案:

答案 0 :(得分:35)

查看record extension(与Mercurial捆绑在一起)。

请注意,由于Mercurial没有像git这样的暂存区域的概念,因此运行hg record只会让您通过hunk检查工作副本中的修改。您选择记录的任何更改都将被提交,您选择进行记录的任何更改都将保留为工作副本中的修改。

答案 1 :(得分:19)

Record Extension是此标准工具。它允许您选择包含或不包含在提交中。一旦在hgrc中启用了扩展,命令就是

hg record

CRecord Extension在此基础上为您提供了一个TUI(文本用户界面),允许您下到要包含的行。这不是标准的,因此需要先下载到目录,然后才能在hgrc中启用它。

hg crecord

编辑:

  1. approx v3.4以来不再需要记录扩展名。现在各种命令支持   -i--interactive标记。例如:

    hg commit -i
    

    ...会问你想要包括哪些内容。

  2. CRecord以3.8为核心功能。将以下内容添加到您的   .hgrc

    [ui]
    interface = curses
    

    现在,--interactive命令将显示与旧版本相同的界面   CRecord扩展。

答案 2 :(得分:12)

从Mercurial 3.8.1开始,内置了crecord扩展。确保.hgrc中的“ui”部分包含interface = curses,否则您会遇到一个令人不舒服的问答界面。

[ui]
interface = curses

然后以交互方式进行提交,以询问您希望在该提交中包含哪个行或哪行。

hg commit --interactive

答案 3 :(得分:8)

如果您使用的是TortoiseHg,它具有Shelve功能,允许您存储您不想提交到临时区域的更改。它允许大块选择,就像git一样。

在TortoiseHg Workbench中,可以通过两种方式访问​​此工具:

  1. 点击Repository -> Shelve
  2. Commit窗口中,选择搁置工具图标。它看起来像这样:
  3. enter image description here