Mercurial 如何回退到旧版本,忽略之后的所有版本
我有3个提交,是我意外地推送到公共存储库的。我想恢复到一个旧版本(这3次提交之前的版本),并将其作为公共存储库中的当前代码。Mercurial 如何回退到旧版本,忽略之后的所有版本,mercurial,tortoisehg,Mercurial,Tortoisehg,我有3个提交,是我意外地推送到公共存储库的。我想恢复到一个旧版本(这3次提交之前的版本),并将其作为公共存储库中的当前代码。 我使用的是2.11.1版的《乌龟王》,你可以这样做: hg backout -r <rev> hg push hg回退-r 汞推力 这将返回到版本(应该是最后一次正确提交)。换句话说,它会将您的工作目录设置为与上次正确提交时相同的状态,并使用解释性消息创建一个新的提交。然后将其推送到公共存储库,使其再次成为当前代码。选项1 您可以使用命令中提到的strip
我使用的是2.11.1版的《乌龟王》,你可以这样做:
hg backout -r <rev>
hg push
hg回退-r
汞推力
这将返回到
版本(应该是最后一次正确提交)。换句话说,它会将您的工作目录设置为与上次正确提交时相同的状态,并使用解释性消息创建一个新的提交。然后将其推送到公共存储库,使其再次成为当前代码。选项1
您可以使用命令中提到的strip选项
hg strip是命令
必须启用此扩展
通过向.hgrc或Mercurial.ini添加以下行来启用扩展:
[延期]
剥落=
只有当您可以访问托管代码的中央存储库,并且您有一个小组,您可以知道是否有人已经拉取了您的更改时,此选项才适用
选项2
另一个选项是撤销这3个提交,因为您使用的是UI,所以我将附加一个屏幕截图
步骤1:右键单击不需要的提交,您将看到一个退出选项,单击该选项,向导将引导您。
如果您尝试退出的是合并,则必须选择要退出的分支
对3个不需要的提交执行相同的操作
选项3
如果您有许多提交,并且它位于命名分支中,那么遵循这些步骤将提供解决方案
1) 关闭分支并更新到所需的最后一次正确提交。
2) 通过新提交从那里重新打开barch(命名分支可以有多个头)
3) 使用hg revert-r和commit
这将使工作目录与您需要的最后一个良好的提交完全相同,并忽略inwant提交。这仅在提交位于命名分支中时有效。我通常通过UI执行,但据我所知,这会将我的本地代码版本更新为我想要的版本,但不会创建新版本。我尝试这样做是为了不产生任何结果,当我尝试提交时,我收到一条消息说没有任何更改。第一个更新您的本地代码,第二个创建新版本,第三个将新版本推送到远程存储库。但当我尝试第二个而不是创建新提交时,会显示消息“未更改”@ajay,抱歉,我的坏消息。我编辑了答案。这应该可以工作:)这将删除我在提交中所做的更改。在执行push命令之前,我们是否应该做一个hg Committee Ajay。。这是您想要的吗->剥离已从本地删除所选提交,但我的公共存储库中也存在同样的问题,也就是说,当我尝试获取最新更改时,剥离的更改也来自公共存储库如果您有权访问中央存储库,您可以剥离它,但是,如果其他人已经拉取了您的更改,那么它们将在下次推送时再次出现在中心位置。我认为你应该通知你的团队成员,在你完成中央的脱衣命令之前,不要做任何改变。完成后,请所有人重新接上电话。我想,这会起作用,但我无法进入中央电视台。然而,我通过支持3次意外提交实现了相同的功能。因此,实际上,我当前拥有的代码作为当前版本是预期版本。如果可以访问central repo,请将您的评论作为答案发布,因为我认为strip是最干净的选项。您的意外提交是否包括二进制文件?