¿Extraer la rama remota en un repositorio local con un nombre diferente?

112

De acuerdo, investigué un poco sobre esto, pero no pude encontrar una respuesta exacta, así que tengo que preguntar.

Tengo 2 controles remotos: origen y repo2.

Me gustaria hacer algo como

git pull repo2 master

Pero esto llevaría la rama maestra del repo2 a mi maestro. ¿Puedo especificar una rama diferente para ingresar, para mi rama local?

Cosmin Atanasiu
fuente

Respuestas:

163
git checkout -b myBranchName repo2/master
KingCrunch
fuente
20
Nota: debe haber corrido de git fetch remote2antemano, si aún no lo ha hecho. De lo contrario, puede ver> fatal: No se pueden actualizar las rutas y cambiar a la rama 'myBranchName' al mismo tiempo.
dman
Nota: si necesita retroceder, use git push repo2 myBranchName:mastercomo simple git pushfallará
jaimedash
2
¿Y si la sucursal ya existe? Quiero actualizar el código allí con el código del repositorio.
Jared
@Jared Técnicamente, una pregunta diferente, pero también fácilmente posible (y en realidad ese es uno de los casos de uso más comunes). Depende un poco de lo que ya hayas hecho. En la mayoría de los casos es solo git checkout my_branch && git pull --rebase( --rebasedepende de su flujo de trabajo). Si la rama aún no está rastreando la remota, debe ejecutar git branch --set-upstream my_branch upstream/my_branchuna vez.
KingCrunch
4

El git pullcomando es una función de conveniencia que hace git fetchy git merge. Si solo desea recuperar ramas de un nuevo control remoto sin intentar fusionarlo en ninguna rama de copia de trabajo, puede usar git fetch. A continuación, puede git branch -avconsultar para ver todas las sucursales locales y remotas y operar en cualquiera de los controles remotos que desee.

Ben Jackson
fuente