rebase vs reset vs revertir? Solo quiero retrotraer

Digamos que hago un número de commits, llamémoslos 1, 2, 3, 4, 5 y 6 (hashes).

Digamos que estoy en un commit con hash 6. Todo lo que quiero hacer es volver al hash 3, hacer que el estado de mi código esté como estaba cuando me comprometí a hash 3 como si el otro commit nunca hubiera sucedido.

Cuando veo respuestas como esta , parece que todos tienen una respuesta diferente. reset , revert , rebase ? Ni siquiera estoy seguro de saber la diferencia entre esas tres palabras en inglés.

Solo quiero estar en un compromiso previo. alguien puede decirme cómo hacer esto?

Si ya empujó su sucursal en alguna parte o alguien la sacó de usted, su única opción es git revert $COMMIT... Esto creará una confirmación que deshace lo que haya hecho en commit (s) $COMMIT...

Por ejemplo, para revertir los últimos tres commits:

 git revert HEAD~2..HEAD 

Si ha mantenido sus confirmaciones completamente locales y privadas, simplemente puede git reset $COMMIT lo que moverá su puntero de sucursal a $COMMIT para que la sucursal ya no incluya los siguientes commits.

Dependiendo del estado de su índice y tree de trabajo, puede desear que cualquiera de las opciones git reset --soft $COMMIT o git reset --hard $COMMIT .

Por ejemplo, restablecer su bifurcación a la confirmación antes de los últimos tres:

 git reset HEAD~3 

git rebase no suena como lo que quieres.

Lo usa cuando quiere copyr o "mover" algunas confirmaciones de una confirmación en la que están basadas, para basarse en otra confirmación (otra base), por lo tanto, "rebase".

¿Qué tal esta manera?

  1. creas una twig para hash 3.

  2. crea un PR o fusiona esta twig con el maestro (hash 6)