我一直在对我的工作目录进行一些更改,并注意到我不小心在错误的分支上工作。我还没有做任何事情,我希望我的下一次提交能够反对另一个分支。这样做的最佳方式是什么?
答案 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)
我不知道它是否是最佳解决方案,但您可以按照以下步骤操作:
1°hg diff --git > modifications.patch
2°hg update -C the_right_branch
3°hg patch modifications.patch
也许最好将modification.patch复制到安全的地方,以防万一。
编辑:使用diff而不是export进行更新。感谢评论者。