Si deseas borrar los dos últimos commits del historial del repositorio pero mantener todos los cambios en tu máquina local, puedes usar el siguiente comando:
git reset --soft HEAD~2
HEAD~2 indica que quieres retroceder dos commits desde el commit actual.-soft asegura que los cambios realizados en esos dos commits se mantendrán en el área de preparación (staging area). Es decir, los archivos no se perderán.Ejecuta el comando anterior.
Verifica que los cambios están en el área de preparación con:
git status
Si no quieres que los cambios estén en el área de preparación, puedes moverlos al área de trabajo con:
git reset
Esto hará que los cambios estén disponibles en tu directorio de trabajo, pero no estarán en el área de preparación.
Este comando solo afecta al historial de commits en tu repositorio local. Si ya habías hecho un git push de esos commits al repositorio remoto, necesitarás usar git push --force para reflejar los cambios en el remoto. Ten cuidado con -force, ya que puede sobrescribir el historial compartido con otros colaboradores.
Si no estás seguro, puedes hacer un backup del estado actual del repositorio creando una nueva rama antes de ejecutar el comando:
git branch backup-branch
Si los cambios que deseas deshacer incluyen commits realizados desde otro equipo o por otra persona, y esos commits ya se han enviado al repositorio remoto (con git push), entonces simplemente hacer un git reset en tu máquina local no será suficiente para eliminarlos del historial del repositorio remoto.
En este caso, si haces un git reset y luego intentas hacer un git push, Git te mostrará un error porque tu historial local estará desincronizado con el remoto. Para forzar que el historial del repositorio remoto coincida con el de tu máquina local, tendrías que usar el comando:
git push --force
git push --force?git reset también desaparecerán del repositorio remoto.git revert