¿Cuál es la diferencia entre git clone
y git checkout
?
¿Cuál es la diferencia entre git clone
y git checkout
?
Respuestas:
La página del manual para el pago: http://git-scm.com/docs/git-checkout
La página del manual para clonar: http://git-scm.com/docs/git-clone
Para resumir, clonar es para recuperar repositorios que no tiene, el pago es para cambiar entre ramas en un repositorio que ya tiene.
Nota: para aquellos que tienen antecedentes SVN / CVS y nuevos en Git, el equivalente de git clone
en SVN / CVS es checkout
. La misma redacción de diferentes términos a menudo es confusa.
checkout
también se puede utilizar para otras cosas, como sobrescribir un archivo en su copia de trabajo con una versión de ese archivo de otra revisión.
git clone es buscar sus repositorios desde el servidor remoto de git.
git checkout es verificar el estado deseado de su repositorio (como ramas o archivos particulares).
Por ejemplo, actualmente está en la rama maestra y desea cambiar a la rama de desarrollo.
git checkout develop_branch
Por ejemplo, desea pagar a un estado particular de un archivo particular
git checkout commit_point_A -- <filename>
Aquí hay una buena referencia para que aprendas Git, te permite entender mucho más fácilmente.
git clone
También funcionará con repositorios locales.
Una cosa a notar es la falta de cualquier "Copia" dentro de git. Esto se debe a que ya tiene una copia completa en su repositorio local: su repositorio local es uno clone
de sus repositorios ascendentes elegidos. Por lo tanto, tiene efectivamente un personal checkout
de todo , sin poner algún 'bloqueo' en esos archivos en el repositorio de referencia.
Git proporciona los valores hash SHA1 como mecanismo para verificar que la copia que tiene de un archivo / árbol de directorios / commit / repo es exactamente la misma que la utilizada por cualquiera que pueda declarar cosas como "Master" dentro de la jerarquía de confianza. ¡Esto evita todos esos 'bloqueos' que causan que la mayoría de los sistemas SCM se ahoguen (con los problemas habituales de copias privadas, grandes fusiones y sin control o administración real del código fuente ;-)!
Simplemente git checkout tiene 2 usos
git checkout <existing_local_branch_name>
git checkout -b <new_feature_branch_name>
, creará una nueva rama con el contenido de la rama maestra y cambiará a la rama recién creadaPuedes encontrar más opciones en el sitio oficial
-b
opción es increíble, que crea una nueva sucursal local y la comprueba al mismo tiempo en un solo comando. ¡Me encantó!
checkout
Se puede usar para muchos casos:
1er caso : cambiar de rama en el repositorio local Por ejemplo:
git checkout exists_branch_to_switch
También puede crear una nueva rama y cambiar a través de este caso con -b
git checkout -b new_branch_to_switch
2do caso : restaurar archivo desde x rev
git checkout rev file_to_restore
...