在脏工作副本上使用 hg commit --amend 仅修改注释
Using hg commit --amend on dirty working copy to amend only the comment
现代 Mercurial 版本允许 hg commit --amend
之前的提交。
刚才我也想这样做,但是专门调整了上一次提交的提交消息,而我的工作副本已经被额外的编辑弄脏了。所以我尝试了:
hg commit --amend --
遵循 GNU 参数约定(--
结束选项列表,之后的所有内容都是 file/path 名称),试图传递一个空的文件列表。
然而,据我所知,这仍然提交了所有最新的编辑以及提交评论更改。当提示我编辑我之前的提交消息时,编辑器中看不到它,因为我一直在编辑之前提交修改的相同文件。
有没有办法只修改上一次提交的注释,而无需同时提交工作副本中的文件更改?
(为了澄清,我正在寻找一些简洁的命令,我知道我可以 shelve
我的更改,然后在修改评论后将它们从架子上拿回来。)
以下应该有效:
hg commit --amend -e -X .
如果您使用的是 evolve 扩展,还有更短的形式:
hg amend -e -X .
-X .
选项将排除所有文件被提交; -e
强制编辑评论(否则您将收到 "nothing changed" 错误消息)。
现代 Mercurial 版本允许 hg commit --amend
之前的提交。
刚才我也想这样做,但是专门调整了上一次提交的提交消息,而我的工作副本已经被额外的编辑弄脏了。所以我尝试了:
hg commit --amend --
遵循 GNU 参数约定(--
结束选项列表,之后的所有内容都是 file/path 名称),试图传递一个空的文件列表。
然而,据我所知,这仍然提交了所有最新的编辑以及提交评论更改。当提示我编辑我之前的提交消息时,编辑器中看不到它,因为我一直在编辑之前提交修改的相同文件。
有没有办法只修改上一次提交的注释,而无需同时提交工作副本中的文件更改?
(为了澄清,我正在寻找一些简洁的命令,我知道我可以 shelve
我的更改,然后在修改评论后将它们从架子上拿回来。)
以下应该有效:
hg commit --amend -e -X .
如果您使用的是 evolve 扩展,还有更短的形式:
hg amend -e -X .
-X .
选项将排除所有文件被提交; -e
强制编辑评论(否则您将收到 "nothing changed" 错误消息)。