Мой коллега случайно сделал две коммиты в ветке по умолчанию вместо создания новой собственной ветки развития.
Как я могу изменить эту ситуацию и переместить эти два коммита в новую ветвь?
Мой коллега случайно сделал две коммиты в ветке по умолчанию вместо создания новой собственной ветки развития.
Как я могу изменить эту ситуацию и переместить эти два коммита в новую ветвь?
Имеют ли случайные цели достижения других репозиториев или это просто в его собственном? Если это так, вы можете перейти к разделу ниже "Может быть, кот все еще в мешке", иначе у вас может быть справедливая работа.
Вы не одиноки
См. здесь для более подробного обсуждения того, как исправить проблему в другом месте в Stack Overflow. То, что описано, является "правильным" способом к нему.
Может быть, кот все еще в сумке
Если изменения находятся только в локальной копии, то более простым решением является
Представьте себе следующий сценарий:
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
Два вышеперечисленных ответа верны, но , если один из них еще не нажал на коммиты, есть третий способ.
Я только что успешно использовал команду rebase
, чтобы переместить строку коммитов в ветку темы, которую я забыл создать в первой место.
Вначале я обновил версию, из которой я хотел создать ветвь, на которой должны были быть мои сообщения, а затем я свалил самые ранние из моих коммитов из неправильной ветки на этом новом и ta-da./p >
Уходит больше времени, чтобы объяснить это, чем делать это с помощью TortoiseHg или даже с командной строкой.