¿Cómo clonar una rama específica de git?

Git clone copiará la rama de trabajo actual remota a la local.

¿Es posible clonar de alguna manera una rama específica sin cambiar de rama en un repositorio remoto?

2255
16 дек. Scud establece el 16 de diciembre 2009-12-16 02:06 '09 a las 2:06 am 2009-12-16 02:06
@ 7 respuestas

Por favor, vea también otra respuesta que muchas personas prefieren.

También puedes asegurarte de que comprendes la diferencia, a diferencia de la mayoría de los comentaristas malvados y defraudadores. Y la diferencia es la siguiente: al llamar a git clone --branch <branchname> url git clone --branch <branchname> url todas las ramas y marque una. Esto puede significar, por ejemplo, que su repositorio tiene documentación de 5 KB o una rama wiki y una rama de datos de 5 GB. Y cuando quiera editar su página de inicio, puede clonar 5 GB de datos.

Nuevamente, esto no significa que git clone --branch no es una forma de hacer esto, simplemente no es lo que quieres lograr cuando preguntas sobre la clonación de una rama en particular.

La respuesta que escribiría hoy, con el git de hoy, sería:

 git clone --single-branch --branch <branchname> host:/dir.git 

Al momento de escribir la respuesta original a continuación, git no tenía la opción - --single-branch , pero guardémosla para satisfacer completamente a las abejas malvadas.

A Coppasters no le gustó tanto la respuesta:

 git init git remote add -t refspec remotename host:/dir.git git fetch 
396
16 дек. La respuesta la da Michael Krelin - hacker 16 dic. 2009-12-16 02:09 '09 a las 2:09 2009-12-16 02:09
 git clone -b <branch> <remote_repo> 

Ejemplo:

 git clone -b my-branch git@github.com:user/myproject.git 
border=0

En Git 1.7.10 y versiones posteriores, agregue - --single-branch para evitar que se muestreen todas las sucursales. Un ejemplo con una rama de OpenCV 2.4:

 git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git 
6921
31 дек. La respuesta la da Jorge E. Cardona el 31 de diciembre. 2010-12-31 08:36 '11 a las 8:36 AM 2010-12-31 08:36

Para clonar una rama sin extraer otras ramas:

 mkdir $BRANCH cd $BRANCH git init git remote add -t $BRANCH -f origin $REMOTE_REPO git checkout $BRANCH 
225
08 сент. La respuesta la da Edmar Miyake 08 sep. 2011-09-08 17:34 '11 a las 17:34 2011-09-08 17:34

Aquí hay una manera fácil de hacerlo :)

Almacenamiento de clones

 git clone <repository_url> 

Lista de todas las sucursales

 git branch -a 

Echa un vistazo a la rama deseada

 git checkout <name_of_branch> 
213
14 июля '11 в 12:42 2011-07-14 12:42 La respuesta es superlógica , 14 de julio de 2011 a las 12:42. 2011-07-14 12:42.
 git checkout -b <branch-name> <origin/branch_name> 

, por ejemplo, en mi caso:

  git branch -a * master origin/HEAD origin/enum-account-number origin/master origin/rel_table_play origin/sugarfield_customer_number_show_c 

Entonces, para crear una nueva rama basada en mi rama enum-account-number, hago:

 git checkout -b enum-account-number origin/enum-account-number 

Después de hacer clic en regresar, ocurrirá lo siguiente:

 Branch enum-account-number set up to track remote branch refs/remotes/origin/enum-account-number. Switched to a new branch "enum-account-number 

"

74
15 нояб. Respuesta dada por Dkinzer 15 de noviembre. 2011-11-15 22:34 '11 a las 10:34 pm 2011-11-15 22:34

Cree una rama en el sistema local con este nombre. por ejemplo, digamos que desea obtener una sucursal llamada "branch-05142011"

git branch branch-05142011 origin/branch-05142011

Él le dará un mensaje como "Sucursal de sucursal 05142011, configurado para rastrear la sucursal remota de sucursal 05142011 desde la fuente".

Ahora solo navega por el hilo, como se muestra a continuación, y tienes el código -
git checkout branch-05142011

20
15 мая '11 в 22:20 2011-05-15 22:20 PlanetUnknown da la respuesta el 15 de mayo de 2011 a las 10:20 pm 2011-05-15 22:20
 git --branch <branchname> <url> 

Pero la finalización de bash no obtiene esta clave: --branch

Disfrutar

14
07 сент. respuesta dada savgur 07 sept. 2011-09-07 13:16 '11 a las 13:16 2011-09-07 13:16

Otras preguntas sobre tags o Haz una pregunta