Cuando trabajamos en equipo con un repositorio Git centralizado, lo normal es que usemos distintas ramas para distintas funcionalidades del desarrollo, evitando así afectar a la parte central del proyecto. Por ejemplo, si tuviéramos que realizar el rediseño completo de un portal web, una buena opción sería crear una nueva rama y compartirla en el repositorio remoto para que todo el equipo, tanto de desarrollo como de maquetación, pudiera trabajar en ella.
Estas ramas remotas suelen tener el formato [nombre-remoto]/[nombre-rama], por ejemplo, en el caso de la rama principal del proyecto origin/master. Por tanto, si queremos crear y compartir una nueva rama para el rediseño del portal web con el resto del equipo, tendremos que crear la rama en nuestro repositorio local y llevarla después al repositorio remoto:
$ git checkout -b rediseno
$ git push origin rediseno
Para sincronizar con el repositorio remoto, y actualizar nuestro repositorio local con cualquier dato que no tengamos, como en este caso la nueva rama, lanzaríamos el siguiente comando:
$ git fetch origin
De esta forma, no estamos recuperando una copia de las ramas en local, en las que podamos trabajar, sino un puntero a las mismas. Por tanto, si se nos ha actualizado una rama remota que ya existía en nuestro repositorio local, como puede ser la rama master, podremos mezclarla de la siguiente manera:
$ git checkout master
$ git merge origin/master
Si por el contrario, nos aparece en nuestro repositorio local un nuevo puntero correspondiente a una nueva rama, podemos crear nuestra propia rama local de la siguiente manera:
$ git checkout -b rediseno origin/rediseno
Obtendríamos así una rama local rediseno sobre la que poder trabajar, partiendo de donde se encontraba la rama remota origin/rediseno.
En artículos anteriores, ya habíamos hablado de cómo eliminar ramas remotas o cómo renombrarlas, que están relacionados con éste y pueden resultarte de interés.