Откат нескольких коммитов (перед публикацией) в Mercurial - PullRequest
18 голосов
/ 07 февраля 2011

Мне известно, что при откате можно удалить коммиты из последнего набора изменений в локальном репозитории. Однако возможно ли удалить все последние коммиты, начиная с предыдущего нажатия, без необходимости повторного клонирования общего хранилища?

Ответы [ 3 ]

22 голосов
/ 07 февраля 2011

Вы можете использовать команду hg strip, часть расширения mq:

hg strip REV

Это удалит эту ревизию + всех ее потомков.

Прежде чем попробовать это, сделайте копию / клон репозитория для эксперимента.

13 голосов
/ 07 февраля 2011

Вы можете сделать новый репо с hg clone:

hg clone -r last_good_changeset localrepo newlocalrepo
1 голос
/ 26 мая 2017

Если вы используете Mercurial Eclipse, вы можете откатить один раз, затем отложить эти изменения, затем экспортировать несколько последовательных коммитов как патчи, вырезать эти коммиты, затем импортировать эти патчи в том же порядке, так что в случае, если у вас были конфликтующие патчи они перезаписывают друг друга желаемым образом.

Наконец, вы можете отменить первый откат. Это дает тот же эффект, как если бы вы откатывались более одного раза.

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