¿Cuál es la diferencia entre Git Revert, Checkout y Reset?

Estoy tratando de aprender cómo restaurar o revertir archivos y proyectos a un estado anterior, y no entiendo la diferencia entregit revert, checkout yreset. ¿Por qué hay 3 comandos diferentes para aparentemente el mismo propósito, y cuándo alguien debería elegir uno sobre el otro?

Respuestas a la pregunta(12)

Su respuesta a la pregunta