Как вернуть последние коммиты и сохранить изменения в ртути?

У меня есть три коммитов 1, 2 и 3. Как я могу откат 2 и 3 и все еще сохранять измененные файлы из них?

1---2---3

=> 1 and changed files of 2 and 3

Ответ 1

Вы используете команду strip:

strip changesets и все их потомки из репозитория

с опцией --keep:

-k --keep не изменяют рабочую копию во время полосы

И поскольку strip разрушает историю, он по умолчанию не активируется. Вы включите его, добавив эти строки в ваш файл ~/.hgrc:

[extensions]
strip =

Итак, в этом случае вы бы сделали hg strip --keep 2

Примечание: требуется Mercurial 2.8 или новее. До этого вам нужно поставить mq = в .hgrc.