也许我错过了一些重要的东西,但我想切换到另一个分支,而没有先提交我现有的东西。我意识到我可以使用hg update -C
并简单地删除当前的更改,但这不是我想要做的。
我的问题是我有几个分支机构,我正在同时工作,并且不希望用大量的小提交填满我的历史记录。是否有中间立场,我可以存储我当前的分支,而不会在某些情况下做出我做的每一点改变。
答案 0 :(得分:2)
shelve extension可以做你想做的事:
从页面:
暂时隐藏更改。你可以选择确切的帅哥 你想要搁置的改变。
hg shelve
暂时隐藏更改。所有的帅哥都会自动成为 地选择。
hg shelve --all
将更改恢复到workdir。
hg unhelve
如果使用--name选项,则可以在不同的架子上搁置不同的更改。
然而,许多小提交有什么问题?如果更改是独立的,那么它们可能值得提交,如果您想保持理智,您真的不想在签入中添加多个问题,特别是如果您稍后要将功能合并到其他存储库中。
答案 1 :(得分:1)
除了已经提及的shelve选项的选项,以及历史记录中包含大量小变更集之外,您还可以使用collapse扩展名来获取这些小变更集并将它们合并为一个更大的变化集。这非常适合您所描述的场景 - 修复拼写错误等。
使用Mercurial 2.1及更高版本时,折叠扩展将尊重phases,因此您不会无意中折叠已发布的更改集。
一般来说,我主张在一个单独的命名分支上进行所有这些小改动,然后在你开心时合并到你的默认(或其他功能)分支。
答案 2 :(得分:0)
让每个分支在其自己的克隆中签出。您无需做任何事情即可在它们之间切换。