¿Cómo verifico una rama de Git remota?

Alguien envió una rama llamada test con git a un repositorio compartido. Puedo ver una rama con git branch -r.

Ahora estoy tratando de verificar la rama remota test.

He tratado:

¿Cómo verifico una rama Git remota?

  • git
  • git-checkout
  • remote-branch
7 Repuestas

Actualizar

Jakub's answer de hecho mejora lo siguiente. Con versiones Git ≥ 1.6.6, con un solo remoto, solo puedes hacer.

git fetch
 git checkout test

Como el usuario masukomi dice en un comentario git checkout test no funcionará con un git moderno si tienes romotos múltiples. En este caso usa:

git checkout -b test <name of remote>/test

o la taquigrafía

git checkout -t <name of remote>/test

Respuesta antigua.

Antes de que puedas comenzar a trabajar localmente en una rama remota, necesitas traer como es mensionado en las respuetas debajo.

Para obtener una rama, simplemente necesitas:

git fetch origin

Esto traerá te todas las ramas remotas. Puedes ver las ramas disponibles para verificar con:

git branch -v -a

Con las ramas remotas en las manos, ahora necesitas verificar las ramas en las que estas interesado darte una copia en funcionamiento.

git checkout -b test origin/test

Nota al margen: Con un git moderno (>= 1.6.6) puedes usar solo

git checkout test

Ten en cuanta que "test" no es 'origin/test') realizar DWIM y crear un un "test" de rama local para ti para lo que upstream sería la rama de seguimiento remoto 'origin/test'.

La * (no branch) en git branch salida significa que estas en una rama sin nombrar en el llamado "detached HEAD" estado (HEAD apunta directamente a la confirmación y no es una referencia simbólica a alguna de las ramas locales) Si hiciste alguanas de las confirmaciones en esta rama sin nombrar siempre puedes crear una rama locar fuera de una confirmación actual.

git checkout -b test HEAD

En este caso probablemente vas a crear una rama test local la cual esta rastreando la rama remota test.

$ git branch test origin/test

En las versiones anteriores de git, necesitabas una opción explicita --track, pero es el valor predeterminado cuando ramificas una rama remota.

Respuesta aceptada ¿No te funciona?

Mientras la primera y la respuesta seleccionada es técnicamente correcta, existe la posibilidad de que aún no hayas recuperado todos los objetos y referencias del repositorio remoto. Si este es el caso recibiras el siguiente error.

$ git checkout -b remote_branch origin/remote_branch

fatal: git checkout: los parches de actualizaciones son compatibles las ramas intercambiables.
Trataste de verificar 'origin/remote_branch los cuales no pueden ser resueltos como confirmaciones?

Solución

Si recibes este mensaje lo primero que tienes que hacer es tratar el git fetch origin donde origin es el nombre del repositorio remoto antes de ejecutar git checkout remote_branch. Aquí hay un ejemplo con respuestas:

$ git fetch origin
 remote: Counting objects: 140, done.
 remote: Compressing objects: 100% (30/30), done.
 remote: Total 69 (delta 36), reused 66 (delta 33)
 Unpacking objects: 100% (69/69), done.
 From https://github.com/githubuser/repo-name
    e6ef1e0..5029161  develop    -> origin/develop
  * [new branch]      demo       -> origin/demo
    d80f8d7..359eab0  master     -> origin/master

  $ git checkout demo
  La rama de demostración se configura para seguir a una rama remota de desmostración desde el origen.
  Cambiar a una nueva rama "demo"

Como puedes ver, ejecutar git fetch origin ejecutaba cualquir rama remota que no habiamos configurado para rastrear en nuestra maquina local. A partir de ahí, ya que ahora tenemos una referencia a la rama remota, simplemente podemos ejecutar git checkout remote_branch y ganaremos los veneficios de un seguimiento remoto.

Probé con la solución de arriba, pero no funcionó Prueba con esto:

git fetch origin 'remote_branch':'local_branch_name'

Esto traerá la rama remota y creará una rama local (si aun no existe) con el nombre local_branch_name y rastrea la remora en esta.

Este DWIM para una remota original sin nombrar (documentation):

$ git checkout -t remote_name/remote_branch

Para agregar un nuevo remoto necesitarás hacer lo siguiente, primero:

$ git remote add remote_name location_of_remote
 $ git fetch remote_name

El primero le dice a Git que el control remoto existe, el segundo recibe las confirmaciones.