"push создает новую удаленную головку"

Я прочитал все вопросы SO об этой проблеме, и я все еще не могу ее решить. Я использую TortoiseHg. Я работал над боковой веткой, и теперь я хочу объединить ее обратно в основную ветку. Я вытащил все изменения, сделанные в обеих ветвях, обновленные до основной ветви, и объединил (и зафиксировал). Но все же, когда я пытаюсь нажать все это, я получаю сообщение "abort:push создает новую удаленную головку". Я также попытался (как было предложено в одном из вопросов в SO) закрыть ветку, используя . Единственный я не пытался "форсировать" толчок.

какие предложения? Или единственный вариант-толкать силой?

See screenshot

4 ответов


Я только что попробовал аналогичную настройку, и я получаю то же предупреждение. По-видимому, хотя вторая голова, которую вы пытаетесь толкнуть, закрыта, во время толчка она рассматривается как другая голова. И закрытие обеих голов, похоже, не pushable либо.

вы можете заставить толчок, это должно быть нормально, но вы можете в конечном итоге получить ту же проблему, если вы держите несколько голов на своем visualization ветке, как у вас уже есть с наборами изменений, 14 и 20. Решить вопрос раз и навсегда, Вместо этого я бы предложил объединить оба набора изменений (14 и 20) и reclose окончательной голову.


только для всех остальных, кто сталкивается с этой проблемой. Причиной этой проблемы для меня были некоторые локальные изменения в ветке по умолчанию, которые я не нажимал, прежде чем начать работу над новой веткой.

Я объединил последнюю версию, которую я вытащил для ветку умолчанию мой новая филиал, но это оставляет ваши локальные изменения в ветку умолчанию совершил, но не толкнул.

Если вы пытаетесь толкать их, это не ваш новый ветвь, которая создает удаленную головку, это отмененные изменения ветви по умолчанию, которая создает удаленную головку.

когда я снял эти ревизии с HG strip-r 1234

hg push --new-branch 

прошло отлично.

то, что поставило меня на правильный путь, было

hg heads

With показал, что у меня было две головы, которые имели имя ветви по умолчанию с разными номерами ревизий.


Спасибо за ответы, я наверняка узнал некоторые новые трюки.

то, что я закончил, это клонирование ранней версии из пульт ДУ репозиторий, то есть репозиторий, который не имеет всех коммитов моих слияний и т. д. Затем я вытащил наборы изменений, слился и совершил. Наконец толчок удался.

Это были в основном те же шаги, которые я пытался сделать раньше, но, по-видимому, на первом (неудачном) испытании я разбил его на несколько шагов чем было нужно, и что-то пошло не так в какой-то момент.


попробуйте это решение,

предположение. У вас достаточно прав, чтобы закрыть и создать ветку в удаленном

это происходит потому, что вы пытаетесь переписать историю. Просто попробуйте hg push -f который создаст две головы в удаленном РЕПО, чего вы не могли бы

Итак, первый вход на ваш пульт и закройте ветку, Теперь перейдите к локальному и нажмите, используя hg push -f. Необходимая новая ветвь будет создана автоматически с помощью первоначальное состояние, как и раньше.