Cómo comprobar si una rama de Git está siguiendo una rama remota

GitGitBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo comprobar si una rama local de Git está siguiendo (tracking) una rama remota. Exploraremos dos métodos principales: utilizar el comando git branch -vv para ver rápidamente la información de seguimiento y utilizar el comando git config para verificar la configuración del repositorio remoto (upstream).

A través de ejemplos prácticos, entenderás cómo interpretar la salida de estos comandos e identificar a qué rama remota está conectada tu rama local, en caso de que lo esté. También abordaremos brevemente el concepto de ramas sin seguimiento (non-tracking branches).


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/SetupandConfigGroup -.-> git/config("Set Configurations") git/BranchManagementGroup -.-> git/branch("Handle Branches") subgraph Lab Skills git/config -.-> lab-560053{{"Cómo comprobar si una rama de Git está siguiendo una rama remota"}} git/branch -.-> lab-560053{{"Cómo comprobar si una rama de Git está siguiendo una rama remota"}} end

Ejecutar git branch -vv para comprobar el seguimiento

En este paso, aprenderemos cómo comprobar el estado de seguimiento (tracking) de tus ramas locales utilizando el comando git branch -vv. Este comando es muy útil para ver a qué rama remota está conectada tu rama local, en caso de que lo esté.

Primero, asegúrate de estar en el directorio de tu proyecto. Abre tu terminal y navega hasta el directorio my-time-machine:

cd ~/project/my-time-machine

Ahora, ejecuta el comando git branch -vv:

git branch -vv

Deberías ver una salida similar a esta:

* master a1b2c3d [origin/master] Send a message to the future

Desglosemos esta salida:

  • * master: El asterisco (*) indica que master es tu rama activa actual.
  • a1b2c3d: Esta es la versión abreviada del hash del último commit en esta rama.
  • [origin/master]: Esta parte te indica que tu rama local master está siguiendo (tracking) la rama master en un repositorio remoto llamado origin. Aún no hemos agregado un repositorio remoto, pero Git está mostrando la información de seguimiento potencial.
  • Send a message to the future: Este es el mensaje del último commit en esta rama.

Comprender el seguimiento de ramas es importante, especialmente cuando comienzas a colaborar con otros o a enviar tu código a plataformas como GitHub. Te ayuda a saber si tu rama local está actualizada con la versión remota y a dónde irán tus cambios cuando los envíes (push).

En los siguientes pasos, exploraremos cómo configurar y verificar las ramas remotas (upstream branches), que son las ramas remotas que tu rama local sigue.

Utilizar git config para verificar el repositorio remoto (upstream)

En el paso anterior, vimos que git branch -vv mostró [origin/master]. Esto indica que nuestra rama local master está configurada para seguir (track) la rama master en un repositorio remoto llamado origin. Aunque aún no hemos agregado un repositorio remoto, Git tiene configuraciones predeterminadas que sugieren esta relación de seguimiento.

Podemos verificar esta configuración utilizando el comando git config. Este comando nos permite ver y modificar la configuración de Git.

Asegúrate de que todavía estés en el directorio ~/project/my-time-machine.

Ahora, veamos la configuración del repositorio remoto de nuestra rama master:

git config branch.master.remote

Este comando le pide específicamente a Git el valor de la configuración remote para la rama master.

Deberías ver la siguiente salida:

origin

Esto confirma que la rama master está configurada para utilizar origin como su repositorio remoto.

A continuación, veamos la configuración del nombre de la rama remota que sigue nuestra rama local master:

git config branch.master.merge

Este comando le pide a Git el valor de la configuración merge para la rama master, que especifica la rama remota a fusionar (merge) con la rama local.

Deberías ver la siguiente salida:

refs/heads/master

Esto confirma que la rama master está configurada para seguir la rama master en el repositorio remoto. refs/heads/master es el nombre de referencia completo de la rama master.

Utilizar git config es una forma poderosa de entender y gestionar la configuración detallada de tu repositorio de Git, incluyendo cómo interactúan tus ramas locales con los repositorios remotos.

Probar ramas sin seguimiento (non-tracking branches)

En los pasos anteriores, vimos cómo nuestra rama master está configurada para seguir una rama remota. Ahora, creemos una nueva rama local que no siga una rama remota y veamos cómo git branch -vv informa sobre su estado.

Asegúrate de que todavía estés en el directorio ~/project/my-time-machine.

Primero, creemos una nueva rama llamada experiment:

git branch experiment

Este comando crea una nueva rama llamada experiment pero no cambia a ella.

Ahora, ejecutemos git branch -vv de nuevo para ver el estado de todas nuestras ramas locales:

git branch -vv

Deberías ver una salida similar a esta:

* master    a1b2c3d [origin/master] Send a message to the future
  experiment a1b2c3d Send a message to the future

Observa la diferencia en la salida de la rama experiment en comparación con la rama master. La rama experiment no muestra [origin/...] después del hash del commit. Esto indica que la rama experiment es una rama local que no está siguiendo actualmente ninguna rama remota.

Este es un escenario común cuando creas una nueva rama local para experimentar o desarrollar una nueva función antes de decidir compartirla con otros en un repositorio remoto.

Puedes establecer explícitamente una rama remota (upstream branch) para una rama local utilizando git branch --set-upstream-to=<remote>/<remote-branch> <local-branch>. Sin embargo, por ahora, es importante entender que no todas las ramas locales siguen automáticamente una rama remota.

Con esto concluimos nuestra exploración de cómo comprobar el estado de seguimiento de las ramas. Has aprendido cómo usar git branch -vv y git config para entender cómo están configuradas tus ramas locales para interactuar con los repositorios remotos.

Resumen

En este laboratorio (lab), aprendimos cómo comprobar si una rama de Git está siguiendo una rama remota. Utilizamos el comando git branch -vv para ver el estado de seguimiento de las ramas locales, identificando la rama remota y el repositorio que se está siguiendo.

También exploramos cómo usar el comando git config para verificar la configuración del repositorio remoto (upstream) de una rama, confirmando la rama remota que una rama local está configurada para seguir. Finalmente, probamos el comportamiento de las ramas sin seguimiento (non-tracking branches) para entender cómo Git maneja las ramas sin una configuración explícita del repositorio remoto.