¿Cuál es la diferencia entre git clone y checkout?
¿Cuál es la diferencia entre git clone
y git checkout
?
5 answers
La página de manual para checkout: http://git-scm.com/docs/git-checkout
La página de manual para clon: http://git-scm.com/docs/git-clone
En resumen, clone es para obtener repositorios que no tiene, checkout es para cambiar entre ramas en un repositorio que ya tiene.
Nota: para aquellos que tienen un fondo SVN/CVS y son nuevos en Git, el equivalente de git clone
en SVN/CVS es checkout
. La misma redacción de diferentes términos es a menudo confusa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-27 09:36:19
Git clone es recuperar tus repositorios desde el servidor git remoto.
Git checkout es revisar el estado deseado de tu repositorio (como ramas o archivos particulares).
Por ejemplo, usted está actualmente en la rama master y desea cambiar a la rama develop.
git checkout develop_branch
Por ejemplo, desea obtener un estado particular de un archivo en particular
git checkout commit_point_A -- <filename>
Aquí hay una buena referencia para que aprendas Git, te permite entender mucho más fácilmente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-07 00:17:33
Una cosa a notar es la falta de cualquier "Copyout" dentro de git. Esto se debe a que ya tiene una copia completa en su repositorio local - su repositorio local es un clone
de su repositorio upstream elegido. Así que tienes efectivamente un checkout
personal 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 tienes de un archivo / árbol de directorios / commit / repo es exactamente la misma como la utilizada por quien es capaz de declarar las cosas como "Maestro" dentro de la jerarquía de la confianza. Esto evita todos esos 'bloqueos' que causan que la mayoría de los sistemas SCM se bloqueen (con los problemas habituales de copias privadas, grandes fusiones, y ningún control o gestión real del código fuente ;-) !
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-04 13:05:39
Simplemente git checkout tiene 2 usos
- Cambiar entre ramas locales existentes como
git checkout <existing_local_branch_name>
- Crea una nueva rama desde la rama actual usando flag-b. Supongamos que si estás en la rama master entonces
git checkout -b <new_feature_branch_name>
creará una nueva rama con el contenido de master y cambiará a la rama recién creada
Puedes encontrar más opciones en el sitio oficial
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-27 12:52:14
checkout
puede ser utilizado para muchos casos:
1st case : cambiar entre rama en 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
...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-05 18:11:27