あるブランチを別の既存のブランチにマージする代わりに、2 つのブランチを 3 つ目の新しいブランチにマージすることは可能ですか?
1 に答える
2 つの既存のブランチをマージし、マージを 3 番目の新しいブランチの先端と見なし、マージされたブランチの前のヘッドを 1 番目と 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
作業したい場合は に更新し、1 番目のブランチで作業したい場合は に更新しsalt
、2 番目のブランチを に更新してpepper
から作業を続けてコミットします。
(ブックマークではなく) 名前付きブランチで作業したい場合はhg branch masala
、リビジョン 2 と 1 のマージをコミットする前に a を発行してください。
基本的なメッセージは、グラフには頭が 1 つしかありませんが、それを 3 つの異なる開発ラインとして自由に解釈できるということです。
ここで、2 番目のブランチで作業を続けたいとします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
ブックマークと名前付きブランチに代わる方法は、個々のブランチに異なるクローンを使用することです。つまり、マージされていないブランチでレポを複製し、それらをクローンにマージします。どのアプローチが最適かは、特定のワークフローと個人的な好みによって異なります。