Откажитесь от локального отделения в Mercurial, прежде чем оно будет отправлено - PullRequest
21 голосов
/ 09 августа 2011

Часто случается, что у меня есть несколько коммитов в моем локальном репозитории Hg, которые я не хочу выдвигать, а иногда я вообще хочу удалить локальную ветку. Но я не могу откатить более одного коммита, который не оставляет мне выбора, кроме как создать новый клон и снова загрузить весь репозиторий. Это выглядит глупо, поскольку, если бы я мог просто удалить свою локальную ветку, которая никак не повлияла на удаленный репозиторий, мне не пришлось бы создавать и настраивать новый клон. Итак, это как в Mercurial или есть какой-то способ отбросить локальную ветку?

Спасибо!

Ответы [ 3 ]

16 голосов
/ 09 августа 2011

Если вы включите расширение mq (в комплекте с Mercurial), вы можете использовать hg strip. Будьте осторожны, так как это изменит историю вашего хранилища. Безопасный метод - клонировать ваш репозиторий до версии, предшествующей созданию ветви, которую вы хотите удалить, а затем извлечь оставшиеся наборы изменений, которые вы хотите сохранить.

3 голосов
/ 09 августа 2011

Если вы делаете это часто, возможно, вам следует использовать закладки вместо именованных веток. http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/

2 голосов
/ 01 февраля 2019

Я знаю, что уже слишком поздно, но это может пригодиться любому:

Если ваша ветвь еще не нажата.

  • Первые изменения отката hg rollback только если вы сделали коммит, но еще не нажал
  • Второй запуск hg update --clean
  • Третий прогон hg branch any-existing-branch
  • Четвертый прогон hg pull -u
...