为什么hg rollback不起作用,如何在本地和Bitbucket上回滚?

时间:2017-01-02 16:51:29

标签: mercurial bitbucket revert

我使用Mercurial,我立即将每次提交推送到BitBucket。

我最近提交了我的本地存储库,并通过hg push将其推送到BitBucket。后来,我意识到我不应该做出提交,所以我试过了:

$ hg rollback
repository tip rolled back to revision 37 (undo push-response)

但Xcode中的文件没有改变。我关闭了Xcode窗口并重新打开它,但没有变化。我试图恢复Bitbucket的回滚,但这也没有用:

$ hg push ssh://hg@bitbucket.org/myuser/myproject
pushing to ssh://hg@bitbucket.org/myuser/myproject
searching for changes
no changes found

如何在本地和BitBucket中回滚?我希望代码回到错误提交之前的状态。

1 个答案:

答案 0 :(得分:1)

您无法在Bitbucket中回滚,您必须从存储库中删除更改 在Bitbucket中,转到存储库设置,然后剥离提交。输入提交的哈希ID并单击预览条,然后如果您对它将要删除正确的提交感到高兴,您可以确认它。

现在,您可以删除或编辑本地副本中的提交 目前不建议使用hg rollback,如果您可以修复提交,则可以在再次推送之前使用hg commit --amend进行更新。

回滚将删除提交并将更改的文件保留在工作目录中的未提交状态。从您收到的消息中可以看出您的回滚成功了,我不希望文件在XCopy中更改,因为它会在您的工作目录中保留更改,但如果您查看存储库的提示现在是什么提交应该消失,如果你查看工作目录的状态,你应该有与你不想要的更改相对应的未提交的更改 您应该可以hg revert任何您不想要的未提交的更改。

如果提交仍然存在,并且您想完全摆脱它并且不想保留代码,您可以使用hg strip将其删除(您可能需要激活首先在mercurial settigs中剥离扩展)。

Mercurial - Finding and fixing mistakes

Strip extension