Git: Obtener una rama remota

Cuando colabora con colegas, o incluso cuando solo está usando una biblioteca de código abierto, a menudo necesitará obtener una rama de un repositorio remoto usando Gi...

Cuando colabora con colegas, o incluso cuando solo está usando una biblioteca de código abierto, a menudo necesitará obtener una rama de un repositorio remoto usando Git.

El "caso base" para obtener una rama es bastante simple, pero al igual que con muchas otras operaciones de Git, puede volverse bastante confuso cuando se introducen otras restricciones y necesita comenzar a usar una de las muchas opciones disponibles. En este artículo, intentaré arrojar algo de luz sobre los comandos que deben ejecutarse y las opciones que se usan comúnmente.

En general, querrá ejecutar esta secuencia:

1
2
$ git fetch <remote-repo> <remote-branch>:<local-branch>
$ git checkout <local-branch>

El comando fetch recuperará la rama remota que le interesa y todos los objetos y referencias relacionados, almacenándolos en una nueva rama local que especificó mediante el argumento <local-branch>.

Una vez que todo se haya descargado del repositorio remoto, puede verificarlo para inspeccionar y jugar con el código.

Si solo tiene un repositorio remoto, puede omitir todos los argumentos de git fetch, que recuperará todas las sucursales y actualizaciones, y luego ejecutar git checkout <branch-name> ya que todas las sucursales remotas ya están en su sistema .

Dado cómo funciona la búsqueda, el comando de ejemplo anterior recuperará todo el código en la rama que te interesa, pero no\ no afectará a ninguna de sus sucursales locales ya que nada se fusiona con fetch.

Muchas veces querrá que su nueva sucursal local rastree la sucursal remota, lo cual es útil para extraer y enviar cambios fácilmente. Para hacer esto, debe usar la opción --track con el comando checkout, que verifica simultáneamente la sucursal y la rastrea con la sucursal remota. Así es como se vería:

1
$ git checkout --track <remote-repo>/<remote-branch>

Esto creará una sucursal local con el mismo nombre que la remota.

Si desea transferir la sucursal remota a una local, pero con un nombre diferente, debe incluir la opción -b para crear la nueva sucursal local:

1
$ git checkout --track -b <local-branch> <remote-repo>/<remote-branch>

En la práctica, se verá algo como esto:

1
2
3
$ git checkout --track -b fix-144 origin/bug-144
Branch fix-144 set up to track remote branch bug-144 from origin.
Switched to a new branch 'fix-144'

Para verificar que su nueva sucursal esté rastreando la sucursal remota, ejecute el comando branch con la opción -vv:

1
2
3
$ git branch -vv
* fix-144 0774548 [origin/bug-144] Fix #144
  master  dc538f6 [origin/master] 4.16.4

Si estás interesado en aprender cómo funciona el código de Git, consulta el proyecto Compromiso inicial.

Licensed under CC BY-NC-SA 4.0