5

是否可以将 2 个分支合并到第 3 个新分支,而不是将一个分支合并到另一个现有分支?

4

1 回答 1

7

只需合并您现有的 2 个分支,并将合并视为第三个新分支的尖端,将合并分支的先前负责人视为您的第一个和第二个分支:

o    changeset:   3:92692c4a6b12
|\   bookmark:    masala
| |  summary:     merge salt and pepper
| |
| o  changeset:   2:a5f955adf03d
| |  bookmark:    pepper
| |  summary:     add some pepper
| |
o |  changeset:   1:2b56f2dc115f
|/   bookmark:    salt
|    summary:     add some salt
|
o  changeset:   0:e992ce7dd508
   summary:     initial

此处的书签已用于标记开发中的不同行。因此,如果您想在新的第 3 个分支中工作,请更新到masala,如果您想在第一个分支上工作,请更新到,并在您继续工作和提交之前salt将第 2 个分支更新到类似的内容。pepper

如果您更喜欢使用命名分支(而不是书签),只需hg branch masala在提交修订 2 和 1 的合并之前发出 a 。

基本信息是,虽然该图只有一个头部,但您可以自由地将其解释为 3 条不同的发展路线。

现在,假设您想继续第二个分支的工作pepper

$ hg up pepper
... hack ...
$ hg ci -m "need more pepper"

然后你对这salt件事有一些想法:

$ hg up salt
... hack ...
$ hg ci -m "less salt please"

现在历史图表更清楚地显示了您的 3 个分支:

o  changeset:   5:d1f8eb72119a
|  bookmark:    salt
|  summary:     less salt please
|
| o  changeset:   4:acc9b01f584f
| |  bookmark:    pepper
| |  summary:     need more pepper
| |
+---o  changeset:   3:92692c4a6b12
| |/   bookmark:    masala
| |    summary:     merge salt and pepper
| |
| o  changeset:   2:a5f955adf03d
| |  summary:     add some pepper
| |
o |  changeset:   1:2b56f2dc115f
|/   summary:     add some salt
|
o  changeset:   0:e992ce7dd508
   summary:     initial

书签和命名分支的替代方法是对各个分支使用不同的克隆。也就是说,您使用未合并的分支克隆您的存储库并将它们合并到克隆中。哪种方法最好,取决于您的具体工作流程和个人偏好。

于 2011-03-22T07:32:00.647 回答