Как удалить случайное ответвление в TortoiseHg?

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

Таким образом, я сделал получение по запросу, которое добавило несколько узлов к главе моего графика в проводнике репозитория. Проблема состоит в том, что нажатие, которое я пытался сделать, теперь показывает ответвлением в проводнике репозитория. Смотря от стороны сервера (codeplex), это не показывает знака моего предпринятого нажатия, указывая, что это случайное ответвление все еще локально на моей машине.

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

21
задан Michael Sorens 2 July 2014 в 00:44
поделиться

2 ответа

Сначала убедитесь, что вы зафиксировали все локальные изменения. Затем объедините ветви, вызвав hg merge , и зафиксируйте результат.

Это должно вернуть вас к одной ветви, воссоединяющей две головы.

17
ответ дан 29 November 2019 в 21:21
поделиться

В проводнике репозитория выберите первую версию ваших локальных изменений, затем щелкните правой кнопкой мыши на кончике ветки, которую вы только что вытащили, и выберите «Rebase» поверх выбранного »или« Изменить историю-> Базировать поверх выбранного »в зависимости от версии вашего клиента. Это будет «переоформлять» ваши обороты на полученные.

Кроме того, чтобы избежать этого в будущем ...

В проводнике репозитория выберите Инструменты-> Настройки. В верхнем левом раскрывающемся списке выберите «Глобальные настройки пользователя», чтобы это применимо ко всем репозиториям. Затем выберите «Синхронизировать» слева. В «After Pull Operation» выберите «rebase». Это приведет к тому, что ваши локальные ревизии будут "перебазированы" на основе только что вытянутых ревизий, вместо того, чтобы оставлять их в другой ветке.

Вот как я это делаю, и, вероятно, это то, чего вы обычно хотите.

Для получения дополнительной информации см. Проект rebase и расширение rebase .

2
ответ дан 29 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: