Rama de seguimiento remoto
Si tu repositorio está conectado a un repositorio remoto (por ejemplo, origin), normalmente tendrás dos conjuntos de ramas:
-
Ramas locales: son las ramas normales en las que trabajas.
-
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 logogit diffcontraorigin/mainpara 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 mainseguido degit 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-1yfeature-2, tu repositorio local tendrá las ramas de seguimiento remotoorigin/main,origin/feature-1yorigin/feature-2, pero solomainestará seleccionada como rama local. -
Ejecutar
git fetchactualiza 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 ejecutandogit fetch --prune. Git nunca descarta datos sin tu consentimiento explícito. -
Ejecutar
git pulles lo mismo que ejecutargit fetchseguido degit merge(ogit rebase), así que también actualiza las ramas de seguimiento remoto.
.gitignoregit checkoutgit configgit taggit worktree