merge
- это способ получить изменения от одной ветки к другой. Я знаю, что вы объединили default
в функцию, но теперь вы идете в другую сторону. Вот пример, где пронумерованные Изменения приходят от других людей и литерных ревизий приходит от вас:
Перед тем, как сделать что-нибудь клонировать и есть это:
[1]---[2]---[3]---[4] (default branch)
затем вы создаете свой филиал под названием «функция» и сделать два совершает на ней, получая:
[1]---[2]---[3]---[4] (default branch)
\
[A]---[B] ('feature' branch)
тогда вы hg pull
, чтобы получить изменения по умолчанию, так как вы расходились вниз в локальном хранилище:
[1]---[2]---[3]---[4]---[5]---[6] (default branch)
\
[A]---[B] ('feature' branch)
теперь вы хотите их изменения (5 и 6), интегрированные в вашей отрасли, так что вы делаете:
hg checkout feature # make sure you're looking at the he head of your branch
hg merge default # merge default into your branch
, который дает:
[1]---[2]---[3]---[4]---[5]---[6] (default branch)
\ \
[A]---[B]---[C] ('feature' branch)
Если я правильно понять, что вы уже все это произошло, поэтому теперь вам просто нужно принести свою ветку, в том числе новую фиксацию слияния, C, по умолчанию, которая снова выполняется с помощью слияния:
hg checkout default # hop back to default, files look like [6] and [A] and [B] are missing
hg merge feature # merge feature into default brining [A] and [B] in
, что дает:
[1]---[2]---[3]---[4]---[5]---[6]---[7] (default branch)
\ \ /
[A]---[B]---[C] ('feature' branch)
Это выглядит как много работы, проведенной именно так, но на практике это, как правило, просто:
hg branch feature
....work....
hg commit
hg pull
hg merge default
hg checkout default
hg merge feature
и если pull
не обрушить любую новую работу от других вы можете пропустить слияние дефолта в ваш.
Это создает два новых набора изменений слияния. Они легко спрятаны на hg log
, если вы найдете их бесполезными (некоторым людям нравится записывать, в каком направлении происходит каждое слияние), но если вы хотите полностью их избежать, вы можете использовать bookmarks
(очень похожий на ветви git) вместо «named ветви "для ваших функций - тогда вы избежите набора изменений слияния, когда вернетесь, так как это будет духовный эквивалент того, что git называет« быстрым переходом »слияния.
Ах, конечно! Мне просто нужно слить в другое направление и нажать. Ба! :) –