На сторінці 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)"