Estos tres comandos tienen propósitos completamente diferentes. Ni siquiera son remotamente similares.
git revert
Este comando crea una nueva confirmación que deshace los cambios de una confirmación anterior. Este comando agrega un nuevo historial al proyecto (no modifica el historial existente).
git checkout
Este comando extrae el contenido del repositorio y lo coloca en su árbol de trabajo. También puede tener otros efectos, dependiendo de cómo se invocó el comando. Por ejemplo, también puede cambiar en qué rama está trabajando actualmente. Este comando no realiza ningún cambio en el historial.
git reset
Este comando es un poco más complicado. Realmente hace un par de cosas diferentes dependiendo de cómo se invoque. Modifica el índice (el llamado "área de ensayo"). O cambia a qué compromiso apunta una cabeza de rama actualmente. Este comando puede alterar el historial existente (cambiando el compromiso al que hace referencia una rama).
Usando estos comandos
Si se ha realizado una confirmación en algún lugar de la historia del proyecto, y luego decide que la confirmación es incorrecta y no debería haberse realizado, entonces esa git revert
es la herramienta para el trabajo. Deshacerá los cambios introducidos por la mala confirmación, registrando el "deshacer" en la historia.
Si ha modificado un archivo en su árbol de trabajo, pero no ha confirmado el cambio, puede utilizar git checkout
para retirar una copia del archivo recién salido del repositorio.
Si ha realizado un compromiso, pero no lo ha compartido con nadie más y decide que no lo quiere, puede usarlo git reset
para reescribir el historial para que parezca que nunca lo hizo.
Estos son solo algunos de los posibles escenarios de uso. Hay otros comandos que pueden ser útiles en algunas situaciones, y los tres comandos anteriores también tienen otros usos.