是否存在与git add -p
相当的善变?
引用man,使用-p(或--patch)选项进行git-add执行以下操作:
在索引和工作之间以交互方式选择补丁 树并将它们添加到索引中。这给了用户一个机会 在将修改后的内容添加到索引之前检查差异。
答案 0 :(得分:35)
查看record extension(与Mercurial捆绑在一起)。
请注意,由于Mercurial没有像git这样的暂存区域的概念,因此运行hg record
只会让您通过hunk检查工作副本中的修改。您选择记录的任何更改都将被提交,您选择不进行记录的任何更改都将保留为工作副本中的修改。
答案 1 :(得分:19)
Record Extension是此标准工具。它允许您选择包含或不包含在提交中。一旦在hgrc中启用了扩展,命令就是
hg record
CRecord Extension在此基础上为您提供了一个TUI(文本用户界面),允许您下到要包含的行。这不是标准的,因此需要先下载到目录,然后才能在hgrc中启用它。
hg crecord
编辑:
自approx v3.4以来不再需要记录扩展名。现在各种命令支持
-i
或--interactive
标记。例如:
hg commit -i
...会问你想要包括哪些内容。
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中,可以通过两种方式访问此工具:
Repository -> Shelve
Commit
窗口中,选择搁置工具图标。它看起来像这样: