El cartel original dice:
La mejor respuesta que alguien me podía dar era usar git revertX 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 revertX veces. git revertpuede 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..HEADy 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 revertuso de git versión 1.9.0. Si está utilizando una versión anterior de git, utilizar un rango con git revertmayo o mayo no funciona.
En este caso, git revertse 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