¿Cómo puedes "revertir" el último commit en Mercurial?


Tengo un repositorio Mercurial que uso solo en local... Es para mi uso personal (así que no "empuje" a ninguna parte).

Hice un commit con 3 archivos, pero después de eso entendí que debería hacer commit 4 archivos...

¿Hay una manera de "revertir" mi último (último, solo uno) commit, y "volver a comprometer" con los archivos correctos?

(No se por qué, pero mi opción "Modificar la revisión actual" no está activa, así que no puedo usarla...)

Author: Neeme Praks, 2013-12-09

3 answers

Solo necesita este comando:

hg rollback

Véase: http://hgbook.red-bean.com/read/finding-and-fixing-mistakes.html .

(Técnicamente, esto está obsoleto a partir de la versión 2.7, agosto de 2013, pero aún no he visto una alternativa que haga exactamente lo mismo.)

 78
Author: Martin Eden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-13 11:30:02

La respuesta es strip (si no lo tienes activado puedes comprobar cómo activarlo aquí: https://stackoverflow.com/a/18832892/179581).

Si desea revertir solo el último uso de confirmación:

hg strip --keep -r .

Si quieres volver a un commit específico:

hg strip --keep -r 1234

El uso de strip revertirá el estado de sus archivos a la confirmación especificada, pero los tendrá como cambios pendientes, por lo que puede aplicarlos junto con su archivo a una nueva confirmación.

Recuperar sus datos despojados:

Si no utiliza el comando o desea recuperar sus cambios, puede encontrar sus archivos eliminados en .carpeta hg / strip-backup.

Tutorial sobre cómo restaurar sus archivos, o simplemente Google para ello (funciona igual en todos los sistemas operativos).

Crédito a ForeverWintr

 23
Author: Mugur 'Bud' Chirica,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-07 13:17:24

En hg moderno:

hg uncommit

O, para su problema exacto:

hg add file4
hg amend
 1
Author: Martin C. Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-08 22:41:09