我有这样的情况:
我已经提交了文件a,b,c,d。现在我发现错误地我提交了 文件a和b;所以在推动这些变化之前,我想不要承诺 文件a和b,这样我只能推c和d。有人告诉我如何 通过使用mercurial命令来做到这一点。
这里uncommit意味着我想要使用“hg out -p”之后 查看更改集并手动执行操作。
答案 0 :(得分:40)
假设您在提交文件后还没有在您的存储库上执行任何其他事务,我认为您可以将其作为一个两阶段过程执行此操作:
hg rollback
hg commit filec filed
hg rollback
应删除您刚刚提交的提交,但将文件保留为已更改。然后hg commit filec filed
应提交名为filec
&的文件。 filed
。显然,您应该使用实际文件的名称替换这些文件名。
可能值得一提的是,您应该对hg rollback
小心 - 它会改变历史记录,因此如果使用不当,可能会丢失数据。
答案 1 :(得分:4)
hg rollback
,您可以在Chapter 9. Finding and fixing mistakes
答案 2 :(得分:3)
在mercurial中,您可以使用backout命令,该命令会创建一个与您要撤消的变更集相反的变更集。然后提交此变更集。在此之后你唯一需要做的就是合并。
您可以退出任何变更集,但不建议您退出合并变更集。
可以找到带有示例的命令的详细说明here。