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

Случайная работа над неправильной именованной веткой в ​​Mercurial

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

4b9b3361

Ответ 1

Расширение Shelve может дать вам печаль, и это можно сделать полностью с помощью команд Mercurial. Кртек почти имел это, но использовал export вместо diff. Попробуйте следующее:

hg diff --git > ~/saved-work.patch
hg update --clean desiredbranch
hg import --no-commit ~/saved-work.patch

Ответ 2

Вы должны иметь возможность просто hg up otherbranch. Важно, чтобы вы не использовали параметр --clean для hg up, либо напрямую, либо через псевдоним, поскольку это отменит ваши незафиксированные изменения.

Другой вариант - использовать одно из расширений, предоставляющее hg shelve. Затем процесс будет выглядеть следующим образом:

$ hg shelve --all
$ hg up otherbranch
$ hg unshelve

Это создаст патч ваших изменений в каталоге .hg, вернув рабочий каталог в чистое состояние, переключится на "otherbranch", а затем применит сохраненный патч.

Ответ 3

Я не знаю, является ли это лучшим решением, но вы можете выполнить следующие действия:

1 ° hg diff --git > modifications.patch

2 ° hg update -C the_right_branch

3 ° hg patch modifications.patch

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

изменить: обновить с помощью diff вместо экспорта. Спасибо комментаторам.