现代Mercurial版本允许hg commit --amend
之前的提交。
刚才我想做同样的事情,但是专门调整前一次提交的提交消息,而我的工作副本已经被其他编辑弄脏了。所以我试过了:
hg commit --amend --
遵循参数的GNU约定(--
结束选项列表,之后的所有内容都是文件/路径名),试图传递一个空的文件列表。
但是,据我所知,这仍然提交了所有最新的编辑以及提交注释更改。当我被提示编辑我之前的提交消息时,编辑器无法看到它,因为我一直在编辑上次提交修改过的相同文件。
有没有办法只修改上一次提交的注释,而不提交工作副本中的文件更改?
(为了澄清,我正在寻找一些简洁的命令,我知道我可以shelve
我的更改,然后在修改评论后将它们从架子上取回。)
答案 0 :(得分:1)
以下内容应该有效:
hg commit --amend -e -X .
如果你正在使用evolve扩展,那么还有更短的形式:
hg amend -e -X .
-X .
选项将排除所有提交的文件; -e
强制编辑评论(否则您将收到“未更改”错误消息)。