在脏工作副本上使用hg commit --amend仅修改注释

时间:2016-11-30 18:15:15

标签: mercurial

现代Mercurial版本允许hg commit --amend之前的提交。

刚才我想做同样的事情,但是专门调整前一次提交的提交消息,而我的工作副本已经被其他编辑弄脏了。所以我试过了:

hg commit --amend --

遵循参数的GNU约定(--结束选项列表,之后的所有内容都是文件/路径名),试图传递一个空的文件列表。

但是,据我所知,这仍然提交了所有最新的编辑以及提交注释更改。当我被提示编辑我之前的提交消息时,编辑器无法看到它,因为我一直在编辑上次提交修改过的相同文件。

有没有办法只修改上一次提交的注释,而不提交工作副本中的文件更改?

(为了澄清,我正在寻找一些简洁的命令,我知道我可以shelve我的更改,然后在修改评论后将它们从架子上取回。)

1 个答案:

答案 0 :(得分:1)

以下内容应该有效:

hg commit --amend -e -X .

如果你正在使用evolve扩展,那么还有更短的形式:

hg amend -e -X .

-X .选项将排除所有提交的文件; -e强制编辑评论(否则您将收到“未更改”错误消息)。