我使用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中回滚?我希望代码回到错误提交之前的状态。
答案 0 :(得分:1)
您无法在Bitbucket中回滚,您必须从存储库中删除更改 在Bitbucket中,转到存储库设置,然后剥离提交。输入提交的哈希ID并单击预览条,然后如果您对它将要删除正确的提交感到高兴,您可以确认它。
现在,您可以删除或编辑本地副本中的提交
目前不建议使用hg rollback
,如果您可以修复提交,则可以在再次推送之前使用hg commit --amend
进行更新。
回滚将删除提交并将更改的文件保留在工作目录中的未提交状态。从您收到的消息中可以看出您的回滚成功了,我不希望文件在XCopy中更改,因为它会在您的工作目录中保留更改,但如果您查看存储库的提示现在是什么提交应该消失,如果你查看工作目录的状态,你应该有与你不想要的更改相对应的未提交的更改
您应该可以hg revert
任何您不想要的未提交的更改。
如果提交仍然存在,并且您想完全摆脱它并且不想保留代码,您可以使用hg strip
将其删除(您可能需要激活首先在mercurial settigs中剥离扩展)。