2011-09-04 13 views

Respuesta

223

La página del manual de la caja: http://git-scm.com/docs/git-checkout

La página del manual para el clon: http://git-scm.com/docs/git-clone

Para resumir, el clon es para ir a buscar repositorios que no tienen, la salida es para cambiar entre las ramas en una repositorio que ya tienes.

Nota: para aquellos que tienen un fondo SVN/CVS y son nuevos en Git, el equivalente a git clone en SVN/CVS es checkout. La misma redacción de términos diferentes a menudo es confusa.

+33

'checkout' se puede usar para otras cosas también, como sobrescribir un archivo en su copia de trabajo con una versión de ese archivo de otra revisión. – svick

+5

y cuándo usas "pull" vs "checkout"? – Kokodoko

+18

pull es una combinación de fetch plus, checkout es una operación local que solo funciona con datos que ya se han obtenido. Así que no es como el pago de svn en absoluto. –

105

git clone es buscar sus repositorios desde el servidor remoto de git.

git checkout es para verificar el estado deseado de su repositorio (como sucursales o archivos particulares).

Por ej., Se encuentra en la rama principal y desea cambiar a la rama de desarrollo.

git checkout develop_branch 

por ejemplo, se desea para la obtención de un estado particular de un archivo en particular

git checkout commit_point_A -- <filename> 

Aquí está una good reference para aprender Git, le permite entender con mayor facilidad.

+17

"desde el servidor remoto de git" - no es necesario que el servidor sea remoto. 'git clone' también funcionará con repos locales. – SET

+1

¡Gracias por el enlace a una referencia visual de git! –

+0

@Kit Ho: El enlace está bien como referencia, pero no es de mucha ayuda para alguien con preguntas básicas sobre git como la persona de arriba. Como el propio artículo dice: "Una vez que sepas un poco sobre cómo funciona Git, este sitio puede solidificar tu comprensión" –

10

Una cosa para 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 clone de su repositorio upstream elegido. Así que tiene efectivamente un checkout personal de todo, sin poner un 'bloqueo' en esos archivos en el repositorio de referencia.

Git proporciona los valores de hash SHA1 como el mecanismo para verificar que la copia que tiene de un árbol de archivos/archivos/commit/repo es exactamente la misma que la utilizada por quien puede declarar cosas como "Master" dentro del jerarquía de confianza. Esto evita todos esos "bloqueos" que hacen que la mayoría de los sistemas SCM se ahoguen (con los problemas habituales de copias privadas, grandes fusiones y ningún control o gestión real del código fuente ;-)!

+4

La pregunta no menciona bloqueos y se debe suponer por defecto en estos días que una persona no está familiarizada con esto concepto por lo que estas diferencias de los antiguos VCS deben explicarse solo si se le pregunta explícitamente. – wRAR

2

la caja Simplemente git tienen 2 utiliza

  1. Cambio entre las ramas locales existentes como git checkout <existing_local_branch_name>
  2. Crear una nueva rama de la rama actual usando -b bandera. Supongamos que si usted está en rama principal a continuación git checkout -b <new_feature_branch_name> creará una nueva rama con el contenido del master y el conmutador de rama recién creada

Puede encontrar más opciones en el official site

+0

Agradable. Esta opción '-b' es impresionante, lo que crea una nueva rama local y la comprueba al mismo tiempo en un solo comando. ¡Me encantó! – RBT

Cuestiones relacionadas