El cartel original dice:
La mejor respuesta que alguien me podía dar era usar git revert
X veces hasta que alcanzara la confirmación deseada.
Entonces, digamos que quiero volver a una confirmación que tiene 20 confirmaciones antiguas, tendría que ejecutarla 20 veces.
¿Hay una manera más fácil para hacer esto?
No puedo usar reset porque este repositorio es público.
No es necesario usar git revert
X veces. git revert
puede aceptar un rango de confirmación como argumento, por lo que solo necesita usarlo una vez para revertir un rango de confirmaciones. Por ejemplo, si desea revertir las últimas 20 confirmaciones:
git revert --no-edit HEAD~20..
El rango de confirmación HEAD~20..
es corto HEAD~20..HEAD
y significa "comenzar desde el vigésimo padre de la confirmación HEAD, y revertir todas las confirmaciones hasta HEAD".
Eso revertirá los últimos 20 commits, suponiendo que ninguno de ellos sea commit de fusión. Si hay confirmaciones de fusión, entonces no puede revertirlas todas en un solo comando, deberá revertirlas individualmente con
git revert -m 1 <merge-commit>
Tenga en cuenta también que he probado usando un rango con el git revert
uso de git versión 1.9.0. Si está utilizando una versión anterior de git, utilizar un rango con git revert
mayo o mayo no funciona.
En este caso, git revert
se prefiere sobre git checkout
.
Tenga en cuenta que, a diferencia de esta respuesta que dice usargit checkout
, en git revert
realidad eliminará todos los archivos que se agregaron en cualquiera de las confirmaciones que está revocando , lo que hace que esta sea la forma correcta de revertir un rango de revisiones.
Documentación