我对如何回滚到 Mercurial 中的标签有点困惑。 (我对此很陌生)
假设我有一个名为“Version-1.0”的标签,它是几个版本前的。假设我们现在在 r400
现在,如果我的经理告诉我,他们不喜欢事情的发展方向,并且基本上想放弃自那个标签以来的一切,回到 1.0 版。
好吧,我可以使用以下方法 checkout 该标签:
好的,现在我回到了 1.0 版标签,如果我永远不需要进行更改,那就没问题了。但是,一旦我做出更改并提交,我现在就有 2 个头(我对 Version-1.0 和 r400 的新更改是经理想要放弃的东西)。
所以现在我需要与 r400 合并。我不想。 (我真的不想从地球上抹去所有这些变化,我希望它们保留在我的历史中,这样如果管理层再次改变主意,我可以稍后再回到它们)但我目前不想要它们中的任何一个.
我该怎么办?
更新
一个回答说:
如果我的中央存储库由 bitbucket 托管,我不确定如何执行此操作。如果当前的位于 URL https://jisaacks@bitbucket.org/jisaacks/hgml
并且我想将其克隆到标记到名为 hgml2
的新存储库(尚不存在),我在我的机器上本地尝试了此命令:
hg clone -r Version-1.0 https://jisaacks@bitbucket.org/jisaacks/hgml https://jisaacks@bitbucket.org/jisaacks/hgml2
我收到此错误:最佳答案
登录到 bitbucket 并单击右上角的“叉”箭头图标。现在您可以打开“高级设置”以从标签 fork 。
然后,您可以将第一个存储库重命名为“myproject-abandoned-foo-changes”,并为 fork 存储库重用原始名称,您将在其中继续开发。
编辑 :你也可以做一个 no-op merge 。链接的 wiki 页面解释说这可能很糟糕,因为您的历史记录将被不需要的更改污染,但我认为在您的情况下,这可能正是您想要的,因为它会保留您的更改,同时避免“将所有内容切换到新的存储库“你提示的问题。
关于Mercurial如何回滚到一个标签?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4671332/