Veo que la mayoría de las demás respuestas explican lo que git checkout
hace y por qué "checkout" podría ser una forma razonable de describirlo. Sin embargo, aunque me encanta git muy caro, esto toca en dos puntos graves de la frustración que surgen cuando estoy tratando de ayudar a la gente a entender el sistema:
git checkout
hace dos cosas muy distintas, y sería útil para los recién llegados si fueran comandos separados.
¡Un cínico podría sugerir que la terminología de git se eligió deliberadamente para confundir a las personas procedentes de CVS y Subversion! El que mencionas (checkout
) es un gran ejemplo. Otro es commit
, que es completamente local en git y totalmente dependiente del servidor en CVS/SVN; la terminología de darcs de "registro" habría requerido menos desaprendizaje para las personas nuevas en git. El otro ejemplo que me gusta es el mensaje "necesita actualización" que se ve en git, lo que realmente significa "needs to be committed" :)
Por supuesto, siempre se podría utilizar una interfaz diferente a git, como easy git, iolaus, etc.pero la mayoría de la gente tendrá que aprender los comandos estándar eventualmente, así que solo tienes que acostumbrarte a que algunos de ellos reciban un nombre bastante sorprendente.
Estoy seguro de que hay razones históricas de los nombres de estos distintos comandos de Git, pero habría sido útil si diferentes palabras fueron elegidos ...
Actualizar:VonC enlaces en los comentarios al an answer with a neat alias to make git checkout
safer en cualquiera de sus dos usos;)
porque Linus decidió que tenía que ser así? – eckes