Jesús Amieiro

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:

Comments

Leave a Reply

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.