¿Qué hay checkouten git?
Sé que una vez que lo haces checkoutcon una rama en particular, los HEADpuntos apuntan a esa rama. ¿Pero qué significa realmente? ¿Significa que luego puedo trabajar en esa rama? Si es así, entonces, sin verificar una rama, ¿no puedo trabajar en ella?
Además, ¿qué remote checkoutsignifica? ¿Qué utilidad tiene?
git
git-checkout
daehaai
fuente
fuente

Respuestas:
Como notó,
HEADes una etiqueta que indica dónde se encuentra en el árbol de confirmación. Se mueve contigo cuando pasas de un compromiso a otro.git checkout <commit>es el mecanismo básico para moverse en el árbol de confirmación, moviendo su foco (HEAD) a la confirmación especificada.La confirmación puede ser especificado por cualquiera de un número de maneras, cometer de hash, nombre de la sucursal, nombre de la etiqueta, la sintaxis relativa (
HEAD^,HEAD~1, etc.) y así sucesivamente. A menudo es útil considerar que un checkout está cambiando de sucursal, y hay algunas opciones que funcionan desde esa perspectiva, pero todas hacen referencia a confirmaciones.Verificar una confirmación tiene algunos efectos secundarios además de moverse
HEAD.-bopción, se creará una nueva rama basada en la confirmación actual y luego se activará.--trackopción, la rama extraída puede ser consciente de una rama remota--orphanopción se crea una nueva rama (como con-b) pero no se basará en ninguna confirmación existente.Hay algunas opciones más, sobre las que puede leer en la página de manual de git checkout , todas las cuales giran en torno al movimiento de un compromiso a otro, simplemente variando el efecto que tiene ese movimiento además de moverse
HEAD.fuente
git checkout <commit> <path>no cambia de rama.git checkout <path>.Permítanme explicar algunos casos de uso de pago con archivo, carpeta y ramas para que pueda ser útil para comprender.
Digamos que tenemos una carpeta nombrada
devyindex.htmltambién se realiza un seguimiento de todo y el directorio de trabajo está limpio.Si cambio accidentalmente el nombre del archivo
index.htmly quiero deshacer eso, simplementegit checkout index.htmllo usaré, recuperará el estado del archivo de la rama actualmente seleccionada del repositorio.Ahora, si hice algún cambio en la
devcarpeta y quiero recuperarlo. Puedo usarlo,git checkout devpero ¿qué pasa si ya hay una rama nombrada endevlugar de verificar esa carpeta? Para evitar eso, preferiría hacerlogit checkout -- dev.Ahora aquí, el doble guión desnudo representa la rama actual y le pide a git la carpeta
devde la rama seleccionada actualmente.De manera similar, si lo hago
git checkout alpha dev, desplegará la carpeta dev de la rama alfa.Esta respuesta es para su primera pregunta 'git checkout realmente significa'.
fuente
"Para verificar" significa que toma cualquier confirmación del repositorio y vuelve a crear el estado del archivo asociado y el árbol de directorios en el directorio de trabajo.
Cuando revisa una confirmación que no es una cabeza de rama (p
git checkout HEAD~2. Ej. ), Está en una llamada cabeza separada . Puede crear confirmaciones aquí, pero una vez que cambie a una rama diferente, esas confirmaciones no serán recuperables por un nombre de rama e incluso podrían ser eliminadas por el recolector de basura después de un tiempo.fuente