Pro Git
Pro Git Finalmente, puedes preguntarte cuál es la diferencia entre checkout y reset. Al igual que reset, checkout manipula los tres árboles, y es un poco diferente dependiendo de si se le da al comando una ruta de archivo o no.
Ejecutar git checkout [branch] es bastante similar a ejecutar git reset --hard [branch] porque actualiza los tres árboles para que se vea como [branch], pero hay dos diferencias importantes.
Primero, a diferencia de reset --hard, checkout está en el directorio-de-trabajo seguro; Verificará para asegurarse de que no está volando los archivos que tienen cambios en ellos. En realidad, es un poco más inteligente que eso – intenta hacer una fusión trivial en el Directorio de Trabajo, por lo que todos los archivos que no hayan cambiado serán actualizados. reset --hard, por otro lado, simplemente reemplazará todo en general sin verificar.
La segunda diferencia importante es cómo actualiza HEAD. Donde reset moverá la rama a la que HEAD apunta, checkout moverá HEAD para señalar otra rama.
