Я немного не согласен с ответом DaveInCaz , но в итоге согласен с выводом : вы сможете жить с тем, что имеете;все в порядке.
Технически, в Mercurial, когда вы делаете коммит, он находится на ровно на одной ветви , а ветвь, на которой он находится, - это одна ветка , на которой вы были когда ты это сделал.Так что, если вы были на ветке C
и сделали коммиты 2 и 3, коммиты 2 и 3 находятся на ветке C
, сейчас и навсегда.
Но это не имеет значения с точки зрения выполнения работы,Коммит 4 находится в ветви B
, а родительский коммит 4 - коммит 3
, родитель которого - коммит 2
.Тот факт, что они находятся в какой-то другой ветке, обычно не важен.
(Эта установка довольно сильно отличается от Git: в Git коммиты находятся на всех ветвях, из которых они достижимы.Имена подсказок веток могут создаваться и уничтожаться в любое время, указывая на любой существующий коммит. Это означает, что набор веток, которые некоторые коммиты изменяют от одного дня к другому. В действительности, имена веток в Git лишены какого-либо внутреннего значенияВы можете добавлять, удалять или изменять любое имя в любое время. коммиты не меняются, но набор имен ветвей, которые достигают их делают.)
Если по какой-то причине, например, какому-то внешнему инструменту, требующему, чтобы ветвь name коммитов была B
, а не C
, - вы действительно хотите или должны переместить эти коммиты, ответ будетчто вы не можете на самом деле перемещать их вообще, но вы можете копировать их:
C: 1 -- 2 -- 3 --------- 7
B: \ \- 4 /
A: \------------5----/
может стать:
C: 1 -- 2 -- 3 ------------------ 7
|\ \ /
B | \ 4 /
B: | \ /
B | -------- 2b - 3b - 4b /
\ /
A: ---------------------- 5
Обратите внимание, что полицейскийОт 2
до 2b
и 3
до 3b
, теперь вы также должны скопировать 4
в 4b
.И 4
, и 4b
находятся на ветке B
, а ветка B
теперь имеет две головки.
Как отметил DaveInCaz, вы можете удалить нежелательные коммиты.Если они существуют в каком-то другом клоне, с которым вы разговариваете, они будут возвращаться каждый раз, когда вы говорите с этим клоном, если только вы не уберете их там .