2012-09-11 9 views
7

He cometido accidentalmente varios archivos localmente, pero no empujé. Así que, básicamente, lo que quiero hacer es eliminar esta mi confirmación, luego presionar algunos otros cambios.TortoiseHG: Quitar commit

Puedo eliminar el compromiso por Backout-ing, entonces tengo que confirmar localmente para que realmente se elimine localmente.

Así que mi pregunta es siguiente, si hago un push, ¿será mi commit accidental y su registro de reversión correspondiente visible públicamente?

Respuesta

15

Parece que hg rollback es el comando que desea.

hg backout <REV> crea una nueva confirmación que invierte los cambios realizados en <REV>. Tanto el compromiso original como el compromiso de restitución permanecerán en tu historial. Esta es una de las pocas opciones que tiene para corregir un compromiso incorrecto después de haberlo enviado a una ubicación pública.

Sin embargo, en este caso aún no se ha lanzado al público, por lo que hay mejores soluciones.

Si la confirmación incorrecta es la última confirmación que se realizó (es decir, su sugerencia), puede usar hg rollback (en el menú Repository en TortoiseHg). Este comando es como "deshacer" para commits.

Si el compromiso incorrecto está en otro lugar de su historial (pero aún no ha sido enviado a un repositorio público), también puede usar el mq extension para reescribir esa parte de su historial.

2

Puede usar hg strip -r . --keep en lugar de hg rollback. hg backout sería necesario solo si hubiera presionado sus commits.