2009-08-18 14 views

Respuesta

7

git clone siempre clona el repositorio completo a menos que se especifique el parámetro --depth <n> que limita el repositorio de las últimas n revisiones (el llamado “clon sin profundidad”).

Sin embargo, puede crear un repositorio local y usar git fetch para obtener solo partes del repositorio remoto.

cd /path/foo 
git init 
git remote add origin <some url> 
git fetch origin <some branch> 

Esto duplicará la mayor parte de lo que hace, pero git clone restringirlo a la rama (s) se especifica en la línea de comandos. (No estoy seguro de más detalles, como rastrear ramas y etiquetas, etc.)

2

El título de su pregunta y su resumen son como hacer dos preguntas diferentes porque, como observó Bombe, un clon siempre obtiene todo el contenido a menos que use use la opción --depth.

no estoy seguro de lo que realmente quieren, pero otra opción es clonar con la bandera --no-checkout (o -n). De forma predeterminada, git se registrará en la rama predeterminada del repositorio (que está determinada por la referencia HEAD en el repositorio remoto, no siempre es master). Si utiliza la bandera -ngit no va a retirar una rama para usted por lo que sólo puede pagar el pedido lo que quiere:

git clone -n <some url> foo 
cd foo 
git checkout <some branch> 
Cuestiones relacionadas