Cómo mantener sincronizado un fork en GitHub con el repositorio principal

Cuando tratas de contribuir en un proyecto en GitHub, la forma habitual es haberlo mediante un «pull request»:

  • Llevas a cabo un fork del repositorio del proyecto en GitHub.
  • Clonas tu fork en tu equipo.
  • Llevas a cabo los cambios.
  • Cuando los tienes listos, los llevas a tu repositorio (el fork) en GitHub mediante un pull.
  • Creas un «pull request» desde tu fork al repositorio principal y, si todo es correcto, los cambios se fusionan en el proyecto principal.

Cuando quieres volver a contribuir al proyecto tienes que sincronizar tu proyecto local con el proyecto principal, para evitar problemas en la fusión.

La forma de hacerlo es la siguiente:

1. En tu equipo configuras un repositorio remoto que apunta al repositorio principal:

$ git remote add upstream https://github.com/usuario_original/repositorio_original.git

2. Compruebas que tienes ambos repositorios: el original y el fork:

$ git remote -v
origin https://github.com/usuario_fork/repositorio_fork.git (fetch)
origin https://github.com/usuario_fork/repositorio_fork.git (push)
upstream https://github.com/usuario_original/repositorio_original.git (fetch)
upstream https://github.com/usuario_original/repositorio_original.git (push)

3. Traes los cambios desde el repositorio principal a las ramas de seguimiento locales:

$ git fetch upstream

4. Te cambias a la rama master local:

$ git checkout master

5. Fusionas en la rama master local la rama master del repositorio principal:

$ git merge upstream/master

A partir de aquí ya puedes empezar a trabajar en local para preparar el siguiente «pull request».

Más información:

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.