0

也许我在这里遗漏了一些重要的东西,但我想在不先提交我目前拥有的东西的情况下切换到另一个分支。我意识到我也可以使用hg update -C并简单地删除当前的更改,但这也不是我想要做的。

我的问题是我有几个同时在工作的分支,不想用大量的小提交来填满我的历史。是否有一个中间立场,我可以在其中存储我当前的分支,而无需提交我在某些情况下所做的每一个小改动。

4

3 回答 3

2

搁置扩展可以做你想做的事:

从页面:

暂时隐藏更改。您可以选择要搁置的确切更改。

汞搁置

暂时隐藏更改。所有帅哥都会被自动选中。

hg 搁置——全部

将更改返回到工作目录。

hg 搁置

如果您使用 --name 选项,您可以将不同的更改搁置在不同的货架上。

但是,大量的小提交有什么问题?如果更改独立存在,它们可能值得提交,如果您想保持理智,您真的不想在签入中放入多个问题,特别是如果您稍后要将功能合并到其他存储库中。

于 2012-08-07T19:49:23.770 回答
1

除了已经提到的搁置选项的选项,并且在您的历史中有很多小的变更集,您可以使用折叠扩展来获取这些小变更集并将它们组合成一个更大的变更集。这非常适合您所描述的场景 - 修复错别字等。

在 Mercurial 2.1 和更高版本中,折叠扩展将遵循阶段,因此您不会无意中折叠已发布的变更集。

不过,总的来说,我建议在单独的命名分支上进行所有这些小改动,然后在您满意时合并到您的默认(或其他功能)分支中。

于 2012-08-07T22:30:57.180 回答
0

让每个分支在它自己的克隆中签出。您可以在它们之间切换而无需执行任何操作。

于 2012-08-08T07:22:02.790 回答