0

我的回购目前如下:

O 7: default
|
O 6: default
|
|  O 5: default
|  |
|  O 4: default
|  |
|  O 3: default
| /
O 2: default
|
O 1: default

我想将 6 和 7 移动到一个新的分支,我该怎么做?

4

2 回答 2

2

您可以为此使用rebase 扩展。它需要启用,但该链接包含有关如何执行此操作的信息。

命令将是:

hg update 2
hg branch newbranch
hg commit -m "Creating new branch"
hg rebase -s 6 -d 8

这将创建新分支,提交它(这将在您的示例中创建修订版 8),然后将修订版 6 及其后代移动到新分支上。显然,您需要查找存储库的实际修订号。

您也可以使用mq 扩展来做到这一点,但我认为 rebase 在这种情况下更容易使用。

于 2013-01-04T15:49:20.303 回答
2

取决于您如何定义术语“分支”。如果您在谈论命名分支,那么史蒂夫凯伊的回答很好。

如果您正在谈论像 5 和 6 这样的分支位于图表中的一个分支上,那么您无需执行任何操作。6 & 7 已经在他们自己的分支上。您可以不理会它们,然后返回修订版 2 继续在那里工作。

hg update 2
<continue work>
hg commit -m "New Stuff"

这会给你留下这样的图表:

o 8: default
|  
|  O 7: default
|  |
|  O 6: default
|  |
|  |  O 5: default
|  |  |
|  |  O 4: default
|  |  |
|  |  O 3: default
 \ | /
   O 2: default
   |
   O 1: default

如果您想为这些提示中的每一个指定名称,请查看书签

hg bookmark -r 8 stable
hg bookmark -r 7 experimental-stuff
hg bookmark -r 5 some-feature

...然后您可以按名称在它们之间进行更改。

于 2013-01-04T17:42:13.480 回答