意外地处理Mercurial中错误命名的分支

时间:2011-02-28 17:13:47

标签: mercurial

我一直在对我的工作目录进行一些更改,并注意到我不小心在错误的分支上工作。我还没有做任何事情,我希望我的下一次提交能够反对另一个分支。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:17)

Shelve扩展程序可以让您感到悲伤,这可以完全使用Mercurial命令完成。 Krtek几乎拥有它,但他使用export而不是diff。试试这个:

hg diff --git > ~/saved-work.patch
hg update --clean desiredbranch
hg import --no-commit ~/saved-work.patch

答案 1 :(得分:3)

你应该只能hg up otherbranch。重要的是,不要直接或通过别名对hg up使用--clean选项,因为这会丢弃您未提交的更改。

另一种选择是使用提供hg shelve的扩展程序之一。这个过程将是:

$ hg shelve --all
$ hg up otherbranch
$ hg unshelve

这将在.hg目录中创建一个更改补丁,将工作目录恢复为干净状态,切换到'otherbranch',然后应用保存的补丁。

答案 2 :(得分:1)

我不知道它是否是最佳解决方案,但您可以按照以下步骤操作:

hg diff --git > modifications.patch

hg update -C the_right_branch

hg patch modifications.patch

也许最好将modification.patch复制到安全的地方,以防万一。

编辑:使用diff而不是export进行更新。感谢评论者。