偶尔我会将一些代码提交到存储库,添加注释/摘要,然后阅读摘要并意识到我犯了一个错误或者应该包含更多信息。在TortoiseHg中提交后可以编辑摘要吗?我正在使用1.1版
答案 0 :(得分:10)
使用mercurial队列将更改集转换为修补程序,然后删除这些更改集并将修补程序重新应用回存储库。
创建补丁后,它们将存储在存储库的.hg / patches文件夹中,您可以在重新应用它们之前对其进行编辑(包括提交消息)。
答案 1 :(得分:7)
如果这是最后一次提交,您可以在提交对话框中按“撤消”按钮(它是hg rollback
的接口),然后再次使用新消息提交相同的文件。如果这是树中间的提交,则需要使用mq
扩展名来删除所有后续提交并重新应用它们。如果将具有错误摘要的提交推送到公共回购,您应该接受并使用它,因为您不应该更改已发布的提交。
答案 2 :(得分:6)
这样做的一个合适方法是使用histedit。 Histedit允许您删除,修改,组合或以其他方式编辑以前的提交。
Histedit不附带Mercurial,也不能与TortoiseHg一起使用,但命令行使用非常简单:
> hg histedit <rev>
您想要更改评论的修订版本在哪里。 Histedit将生成一个变更集列表并显示他们的SHA1。除了每个变更集之外,还有一个单词指示一旦关闭文本窗口,hetedit将对每个变更集执行的操作。在您要修改的变更集旁边 - 将“pick”替换为“edit”。关闭文本窗口,然后发出以下命令:
> hg histedit --continue
将出现另一个包含日志消息的文本窗口。将消息更改为您想要的任何内容。如果文件尚未共享,您可以一次性为多个变更集执行此操作。这是一个非常简单的使用hetedit,更复杂的用法涉及组合提交或删除一些提交的一部分。
答案 3 :(得分:3)
根据答案来判断......总结答案是,
是,如果最后一个操作是有问题的变更集的提交(在这种情况下,执行 rollback 命令),则可能
没有,这是不可能的,不是开箱即用(没有mq扩展和大量的gruntwork),如果有问题的变更集已被推送或后续签到已经制成。
我发布这个答案是因为其他答案不承认'不',只承认'如果'。 :)随意投票,我只是想在这里列出推论。
答案 4 :(得分:2)
hg 2.2刚刚添加了git
- 类--amend
选项。 (参见hg 2.2 release notes。)
所以你可以在命令行上执行此操作:
hg commit --amend
另见Mercurial: how to amend the last commit?
我还没想出如何在TortoiseHg中做到这一点。
答案 5 :(得分:1)
如果您提交但未推送,则可以使用
回滚上次提交hg rollback
我不确定TortoiseHG中是否实现了此功能,但您始终可以打开控制台,转到回购并自行输入此命令。
答案 6 :(得分:1)
TortoiseHG,只要你没有推动:
标记最新修订版(待修改),
点击顶部的绿色勾号,就像您要提交一样。
从右侧的“提交”按钮右侧打开菜单三角形,然后选择“修改当前版本”而不是“提交更改”。
你在这里。