Я вижу ряд проблем:
1) вы пытались использовать клон, чтобы избавиться от проблемы.Когда вы ознакомитесь с Mercurial, вы обнаружите, что есть более эффективные способы решения проблем, которые вы описываете.
В вашем описании неясно, какие шаги вы предприняли с клоном.Например, вы клонировали из основного удаленного репо или из локального репо неверный код.
2) Когда вы пытались протолкнуть, он остановил вас с предупреждением о создании нескольких голов в удаленном репо.Используя опцию -f для hg push, ваша проблема обострилась.Вы оказались с двумя головами в вашем удаленном хранилище.Будьте осторожны с нажатием -f.Он отменяет попытки Mercurials помешать вам создать проблему.Могут быть веские причины для создания нескольких головок в удаленном репозитории, но лучше всего быть совершенно ясно, что это именно то, что вы хотите сделать.
В дальнейшем я буду считать, что вы выдвинули несколько головокк вашему удаленному репо.
На данный момент, лучшим решением будет объединить две головы в одну.
Из вашего описания звучит строка, что у вас есть что-то похожее на это:
hg log -G
@ changeset: 4:fa78b78c5094
| tag: tip
| user: Craig
| date: Sun Oct 21 10:38:15 2018 -0600
| summary: Good commit 2
|
o changeset: 3:af5cfaf651ff
| parent: 0:f46808ac779b
| user: Craig
| date: Sun Oct 21 10:38:02 2018 -0600
| summary: Good commit 1
|
| o changeset: 2:aabb053f11a9
| | user: Craig
| | date: Sun Oct 21 10:37:44 2018 -0600
| | summary: Bad commit 2
| |
| o changeset: 1:9168cd930d40
|/ user: Craig
| date: Sun Oct 21 10:37:32 2018 -0600
| summary: Bad commit 1
|
o changeset: 0:f46808ac779b
user: Craig
date: Sun Oct 21 10:18:32 2018 -0600
summary: Commit some work
В моем тестовом репо я бы сделал следующее, чтобы объединить головы:
hg update 4
hg merge 2
Примечание: hg merge без номера будет работать, если есть только две головы.
Скорее всего, вам потребуется разрешить конфликты слияния.
По завершении слияния он покинет ваш репозиторий с измененными файлами (результаты слияния).Убедитесь, что эти изменения содержат только те изменения, которые вы хотите.
Как только вы полностью уверены, что изменения (в результате слияния) - это то, что вам нужно, вы можете зафиксировать слияние:
hg merge -m "Merge heads"
На данный момент у вас должна быть только одна головка, которая выглядит следующим образом:
@ changeset: 5:8f9e6a947b3a
|\ tag: tip
| | parent: 4:fa78b78c5094
| | parent: 2:aabb053f11a9
| | user: Craig
| | date: Sun Oct 21 11:14:43 2018 -0600
| | summary: Merge heads
| |
| o changeset: 4:fa78b78c5094
| | user: Craig
| | date: Sun Oct 21 10:38:15 2018 -0600
| | summary: Good commit 2
| |
| o changeset: 3:af5cfaf651ff
| | parent: 0:f46808ac779b
| | user: Craig
| | date: Sun Oct 21 10:38:02 2018 -0600
| | summary: Good commit 1
| |
o | changeset: 2:aabb053f11a9
| | user: Craig
| | date: Sun Oct 21 10:37:44 2018 -0600
| | summary: Bad commit 2
| |
o | changeset: 1:9168cd930d40
|/ user: Craig
| date: Sun Oct 21 10:37:32 2018 -0600
| summary: Bad commit 1
|
o changeset: 0:f46808ac779b
user: Craig
date: Sun Oct 21 10:18:32 2018 -0600
summary: Commit some work
Перед отправкой объединенного кода в удаленный репозиторий очень важно убедиться, что измененияправильно и проверено.плохое слияние только усугубляет проблему.
Мой лучший совет - не торопитесь с этим и проверяйте, что каждый шаг делает то, что вы ожидаете и хотите.