Pregunta ¿Cómo clonar una rama específica de Git? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

El clon de Git se comportará copiando la rama de trabajo actual remota en local.

¿Hay alguna forma de clonar una rama específica por mi cuenta sin cambiar las sucursales en el repositorio remoto?


2088
2017-12-15 23:06


origen


Respuestas:


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

También es posible que desee asegurarse de comprender la diferencia, a diferencia de la mayoría de los comentaristas enojados y los que menos votan. Y la diferencia es: al invocar git clone -b branch url estás buscando todas las ramas y echando un vistazo. Eso puede, por ejemplo, significa que su repositorio tiene una documentación de 5kB o una rama wiki y una rama de datos de 5GB. Y cada vez que desee editar su página principal, puede terminar clonando 5GB de datos.

De nuevo, eso no quiere decir git clone -b no es la manera de lograr eso, es solo que no es siempre lo que quiere lograr, cuando está preguntando sobre la clonación de una rama específica.

La respuesta que escribiría hoy, con el espíritu de hoy en mente sería

git clone --single-branch -b branch host:/dir.git

en el momento de escribir la respuesta original a continuación, git no tenía --single-branch opción, pero preservarlo para la plena satisfacción de las abejas enojadas.

La respuesta tan desagradable por las copiadoras fue esta:

git init
git remote add -t refspec remotename host:/dir.git
git fetch

230
2017-12-15 23:09



git clone -b <branch> <remote_repo>

Ejemplo:

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

Con Git 1.7.10 y versiones posteriores, agregue --single-branch para evitar la búsqueda de todas las ramas. Ejemplo, con la rama OpenCV 2.4:

git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git

6660
2017-12-31 05:36



Para clonar una rama sin buscando otras ramas:

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH

222
2017-09-08 14:34



Aquí hay una forma realmente simple de hacerlo :)

Clonar el repositorio

git clone <repository_url>

Enumerar todas las ramas

git branch -a 

Verifica la sucursal que quieras

git checkout <name_of_branch>

204
2017-07-14 09: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, lo hago:

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

Después de presionar regresar ocurre 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

"


68
2017-11-15 19:34



Crea una rama en el sistema local con ese nombre. p.ej. digamos que quiere que se nombre la rama "branch-05142011"

git branch branch-05142011 origin/branch-05142011 

Le dará un mensaje como: "Branch branch-05142011 configurado para rastrear la sucursal remota branch-05142011 del origen".

Ahora solo revisa la rama como a continuación y tienes el código -
git checkout branch-05142011


20
2018-05-15 19:20



git --branch <branchname> <url>

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

Disfrutar.


11
2017-09-07 10:16