¿Cuál es la diferencia entre git reset y git revert?

Hola, soy un novato en git y no entiendo cuál es la diferencia básica entre git reset y git revert . ¿ git revert revierte la fusión que se empuja?

Por lo que sé, están haciendo cosas totalmente diferentes.

git revert pretendía revertir los efectos de la confirmación previa. Por ejemplo,

 A <- B <- C ^ HEAD 

Si encuentro que BI cometió antes es incorrecto, y quiero "deshacer" su cambio, git-revert -ing B causará:

 A <- B <- C <- B' ^ HEAD 

para lo cual B' está invirtiendo el cambio hecho en B.

git reset es más directo, simplemente configura el HEAD para un cierto compromiso,

 A <- B <- C ^ HEAD 

git-reset -ting a B te dará

 A <- B <- C ^ HEAD 

Restablecimiento de Git -> mueve la punta de una twig a una confirmación diferente. Esto se puede usar para eliminar confirmaciones de la twig actual. Mueve la twig hacia atrás por commits. Git Revert -> deshace una confirmación al crear una nueva confirmación. Esta es una forma segura de deshacer cambios, ya que no tiene posibilidad de volver a escribir el historial de compromisos.