Меркуриальное движение совершается в другой ветке
Мой коллега случайно сделал две коммиты в ветке по умолчанию вместо создания новой собственной ветки развития.
Как я могу изменить эту ситуацию и переместить эти два коммита в новую ветвь?
Ответы
Ответ 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 или даже с командной строкой.