Conceptos clave

Rama de seguimiento remoto

Si tu repositorio está conectado a un repositorio remoto (por ejemplo, origin), normalmente tendrás dos conjuntos de ramas:

  1. Ramas locales: son las ramas normales en las que trabajas.

  2. Ramas de seguimiento remoto: son ramas especiales de solo lectura que reflejan el estado de las ramas presentes en el repositorio remoto. Estas ramas se nombran con el formato <remote-name>/<branch-name> (por ejemplo, origin/main).

¿Para qué sirven?

  • Para comparar ramas locales con el remoto. Puedes usar comandos como git log o git diff contra origin/main para ver qué ha cambiado en el remoto sin tocar tu directorio de trabajo.

  • Para recuperar ramas locales en mal estado. Si tu rama local se descuadra, puedes restablecerla al estado de una rama de seguimiento remoto (por ejemplo, git switch main seguido de git reset --hard origin/main).

  • Para crear ramas nuevas. ¿Necesitas empezar a trabajar a partir de algo que solo existe en el remoto? Crea una rama local desde la rama de seguimiento remoto: git switch -c feature origin/feature.

¿De dónde salen?

  • Después de clonar un repositorio, todas las ramas del repositorio remoto se copian como ramas de seguimiento remoto dentro de tu repositorio local. Sin embargo, solo la rama por defecto queda seleccionada como rama local normal.

    Por ejemplo, si el remoto tiene las ramas main, feature-1 y feature-2, tu repositorio local tendrá las ramas de seguimiento remoto origin/main, origin/feature-1 y origin/feature-2, pero solo main estará seleccionada como rama local.

  • Ejecutar git fetch actualiza las ramas de seguimiento remoto existentes en tu repositorio y crea nuevas si se han añadido ramas nuevas al remoto.

    Si se ha eliminado una rama del remoto, la rama de seguimiento remoto correspondiente seguirá existiendo en local hasta que la elimines ejecutando git fetch --prune. Git nunca descarta datos sin tu consentimiento explícito.
  • Ejecutar git pull es lo mismo que ejecutar git fetch seguido de git merge (o git rebase), así que también actualiza las ramas de seguimiento remoto.