所以我总是在Mercurial中犯愚蠢的错误。通常情况下,我不会执行“hg拉取”和“hg更新”就开始工作。当我试图推动我的更改时,我得到一个错误。
有没有办法删除我的本地提交,这样我就可以避免创建多个头、分支等?我只想删除我的本地提交,将我的更改与提示合并,然后重新提交。听起来很简单,对吧?我似乎找不到任何方法来轻松地删除本地提交,这样我就可以干净地与技巧合并。
同样,我只是试图删除本地提交与“hg ci”。我不想修改文件,还原文件等等。
所以我总是在Mercurial中犯愚蠢的错误。通常情况下,我不会执行“hg拉取”和“hg更新”就开始工作。当我试图推动我的更改时,我得到一个错误。
有没有办法删除我的本地提交,这样我就可以避免创建多个头、分支等?我只想删除我的本地提交,将我的更改与提示合并,然后重新提交。听起来很简单,对吧?我似乎找不到任何方法来轻松地删除本地提交,这样我就可以干净地与技巧合并。
同样,我只是试图删除本地提交与“hg ci”。我不想修改文件,还原文件等等。
当前回答
如果你熟悉git,你会很乐意使用histedit,就像git rebase -i一样。
其他回答
你可以使用Rebase扩展更容易地解决这个问题,只需要使用hg pull—Rebase,你的提交就会自动重新提交到被拉的修订中,避免了分支问题。
现代答案(仅适用于Mercurial 2.1之后):
使用phase并将您不想共享的修订标记为秘密(私有)。这样你按的时候就不会被发送了。
在TortoiseHG中,你可以右键点击commit来改变它的阶段。
另外:您还可以使用扩展“rebase”将本地提交移动到共享存储库的头部。
如果你熟悉git,你会很乐意使用histedit,就像git rebase -i一样。
正如其他人指出的那样,你可能只需要拉出并合并头部,但如果你真的想摆脱你的提交而不使用任何EditingHistory工具,那么你可以通过克隆-r你的回购来获得所有的更改。
这不会从原始存储库中删除它们,但会创建一个不包含它们的新克隆。然后你可以删除你修改的回购(如果你愿意的话)。
[Hg龟4.6.1] 如果是最近的操作,可以使用“回滚/撤销”操作(Ctrl+U)。