Подтвердить что ты не робот

Меркуриальное движение совершается в другой ветке

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

Как я могу изменить эту ситуацию и переместить эти два коммита в новую ветвь?

4b9b3361

Ответ 1

Основной вопрос

Имеют ли случайные цели достижения других репозиториев или это просто в его собственном? Если это так, вы можете перейти к разделу ниже "Может быть, кот все еще в мешке", иначе у вас может быть справедливая работа.


Вы не одиноки

См. здесь для более подробного обсуждения того, как исправить проблему в другом месте в Stack Overflow. То, что описано, является "правильным" способом к нему.

  • экспортировать патч
  • создать ветку
  • импортировать патч
  • удалить предыдущие коммиты.


Может быть, кот все еще в сумке

Если изменения находятся только в локальной копии, то более простым решением является

  • создать новую ветку
  • переключиться на него
  • объединить изменения с ним с помощью инструмента fav merge (go Meld) или с hg graft
  • используйте команду hg strip, чтобы удалить изменения в старой папке
  • нажмите изменения в мире
  • притворяться, будто ничего не случилось, свистеть счастливую мелодию...

Ответ 2

Представьте себе следующий сценарий:

D
|
C
| "I want to move C and D here"
B/
|
A

Шаги:

  • hg update B
  • hg branch "mybranch"
  • hg commit --message "Create my branch"
  • hg update mybranch
  • hg graft -r C
  • hg graft -r D
  • hg strip -r C (это должна быть редакция C изначально)

    Команда strip предоставляется расширением, которое необходимо включить. Вы можете следовать руководству по включению его в Mercurial Wiki.

  • hg update default

Ответ 3

Два вышеперечисленных ответа верны, но , если один из них еще не нажал на коммиты, есть третий способ.

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

Вначале я обновил версию, из которой я хотел создать ветвь, на которой должны были быть мои сообщения, а затем я свалил самые ранние из моих коммитов из неправильной ветки на этом новом и ta-da./p >

Уходит больше времени, чтобы объяснить это, чем делать это с помощью TortoiseHg или даже с командной строкой.