На сторінці GitConcepts керівництва Hg пояснюється, як виконувати багато дій git, знайомих користувачам у Mercurial.
Mercurial не має жодної вбудованої git reset --hardповедінки. Однак stripрозширення надає stripкоманду, яка робить це. Для використання спочатку увімкнітьstrip у своєму ~/.hgrcфайлі ::
[extensions]
strip =
Примітка: це розширення поставляється новим у Mercurial 2.8. Попередні версії надавали stripкоманду в mqрозширенні .
Тепер ви можете запускати такі команди, як hg stripабо навіть hg help strip. Щоб видалити набір змін та всі його дочірні елементи, просто вкажіть цей набір змін як аргумент hg strip. Наприклад, для видалення останнього щойно зробленого коміту (після того, як ви використали команди, які призвели hg rollbackдо повідомлення про відсутність транзакції для відкоту), ви можете видалити tipревізію. Кожного разу, коли ви запускаєте цю команду, буде вилучено чергову редакцію. hg stripдії Росії слід вважати незворотними; незнайомі користувачі повинні зробити резервні копії своїх сховищ перед використанням.
$ hg strip tip
Наприклад, із синтаксисом revsets я вказую , що хочу видалити будь-які мої коміти, в результаті яких при запуску відображаються зайві голови hg heads. Якщо ви вказали конкретну редакцію у наведеному нижче виразі, крім tip, у поточній гілці буде обрізано все, що не є родоначальником вибраної вами редакції. Це здається найбільш близьким до поведінки, яку я хочу, коли я видаю команду git reset --hard HEAD.
$ hg strip "branch(tip) and not(ancestors(tip)::tip)"