Итак, у вас есть это:
o--o--o--A--B <- older unnecessary head
\
1--2--3--4--5--6 <- newer ‘good’ head
... и вам не нужны A
и B
, безусловно, на 100% уверены. Если вы не уверены , и, возможно, в A
и B
есть вещи, которые можно спасти, лучше объединить головы, чтобы объединить изменения.Как сказал Аарон, Mercurial хорош в этом.
Теперь у вас есть два варианта:
- избавиться от старой головы или
- сделать фиктивное слияниедве головы, которые игнорируют голову
B
.
Если changesets A
и B
присутствуют в других хранилищах, которые вы не контролируете , например, если другие люди потянули A
и B
в их репозитории, или вы поместили A
и B
в общедоступный репозиторий (скажем, Bitbucket), затем вы выпустили A
и B
в дикую природу и не можетеИзбавься от них.Вы должны выполнить фиктивное слияние :
$ hg up 6
$ hg --config ui.merge=internal:local merge
. Это позволит игнорировать любые изменения с A
и B
при слиянии.
Если прис другой стороны, A
и B
являются частными , вы можете либо раздеть их:
$ hg strip A
(Rev A
и потомков раздеть; включить MQрасширение, чтобы сделать strip
доступным.)
Или создать новый клон вашего хранилища без наборов изменений A
и B
:
$ hg clone myrepo myrepo2-clone -r 6
(только rev 6
ипредки добавлены в клон.)