如何只提交对文件所做更改的一部分?

How to commit only a part of the changes made to a file?

我想分别提交同一文件的不同部分。

我想首先提交带有消息(变更集 1)的第 2 行和带有消息(变更集 2)的第 4 行。我该怎么做?

我正在使用 Mercurial 分布式 SCM(版本 3.5.2+20151001)

您可以使用交互选项进行提交。

首先将以下内容添加到您的 ~/.hgrc 文件中:

[ui]
interface = curses

然后使用:

hg commit -i

这将告诉 commit 允许您交互地 select 哪些文件或(通过钻取文件)select 子文件更改。

您可以多次使用它,select在文件中进行个别更改。

注意:如果不添加到您的 .hgrc,hg commit -i 将要求您提供每个文件,并且不允许您钻取和 select 单个文件更改。

交互式选项也正在其他 mercurial 命令中实现,例如 restore(您可以 select 要恢复哪些更改)和新的实验性 amend 命令。它非常强大且易于使用。