loading...
Cover image for Mantener actualizada una copia de repositorio

Mantener actualizada una copia de repositorio

javleds profile image Javier Ledezma Updated on ・3 min read

openSource (3 Part Series)

1) ¿Qué necesito para contribuir al código open source? 2) Git para contribuidores open source 3) Mantener actualizada una copia de repositorio

Si eres un contruibuidor activo de algún proyecto open source te darás cuenta de que éste después de que algún pull request es aceptado, éste no se sincroniza atomáticamente con la copia de tu proyecto, lamentablemente éste proceso debe realizarse de manera manual, pero no te preocupes en este blog te enseñaremos a hacerlo.

Nota: Un repositorio es un espacio en el que se almacenan los archivos de un proyecto. En git un repositorio está represantado con una URL.

El proceso se resume en 3 pasos:

  1. Registrar el respositorio original como fuente de datos.
  2. Obtener los cambios del repositorio original.
  3. Combinar ramas entre repositorios.
  4. Subir los cambios.

1. Registrar el respositorio original como fuente de datos.

Al realizar el clon de algún proyecto, por default tendrémos registrado una fuente de origen, esta fuente apuntará a la url del respositorio situado en nuestra cuenta. Podemos asegurarnos de ello ejecutando el comando:

git remote -v

Esto mostrará algo similar a lo siguiente:

origin URL_REPOSTORIO (fetch)
origin URL_REPOSTORIO (push)

En dónde la salida del comando se compone de 3 elementos:

  • NOMBRE_FUENTE Es un nombre que nosotros le indicamos a git para poder utilizar esta fuente de datos.
  • URL_REPOSITORIO Es la url en la cuál se encuentra guardada el repositorio.
  • TIPO_ACCION Determina que tipos de "movimiento" puede tener esa fuente. Solo existen 2 tipos de acción: descarga ( fetch) y subida (push).

La manera de lograr sincronizar nuestro proyecto con el proyecto original, es agregar la url del repositorio como una fuente de datos adicional. Ésto se logra con la ayuda del comando:

git remote add NOMBRE_FUENTE URL_REPOSITORIO_ORIGINAL

Nota: El NOMBRE_FUENTE puede ser cualquier cosa, sin embargo, por convención suelen utilizarse las palabras origin para hacer referencia a la URL de nuestro repositorio y upstream para la url del repositorio original.

Al ejecutar esta línea agregamos una nueva fuente de datos a nuestro repositorio, podemos consultar los cambios ejecutando nuevamente:

git remote -v

Obteniendo algo similar a:

origin      URL_REPOSITORIO (fetch)
origin      URL_REPOSITORIO (push)
upstream    URL_REPOSITORIO_ORIGINAL (fetch)
upstream    URL_REPOSITORIO_ORIGINAL (push)

2. Obtener los cambios más reciente del repositorio original.

Nota, éste proceso se puede llevar a cabo en cualquier rama del proyecto, sin emabrgo, se recomienda realizrlo sobre la rama principal (usualmente master) para obtener los últimos cambios estables del proyecto.

Si necesitas cambiar a la rama principal, utiliza el comando git checkout master

Una vez que tenemos una fuente adicional de datos, podemos utilizar el NOMBRE_FUENTE para obtener los cambios más recientes de cualquiera de nuestros repositorios, por defecto git utilizará el repositorio de origen, pero podemos cambiarlo al específicarlo como primer argumento del comando fetch:

git fetch NOMBRE_FUENTE

Esto descargará las referencias del repositorio original sobre NOMBRE_FUENTE/RAMA_ACTUAL. Es decir, que los archivos aún no estarán actualizados en nuestro proyecto, para aplicar los cambios índicados en las referencias de NOMBRE_FUENTE/RAMA_ACTUAL debemos combinar las ramas.

3. Combinar ramas entre repositorios.

Para combinar las ramas, basta con ejecutar un solo comando:

git merge NOMBRE_FUENTE/NOMNRE_RAMA

Nota: Este proceso no suele marcar ningún error, dado que los cambios que subiste ya fueron previamente aprobados. Pero en caso de tener algún problema, te recomiendo revisar si existen cambios locales en tu proyecto posterior a tu PR, en caso de haberlos deberías deshacerlos antes y/o crear un nuevo pull request con los cambios.

4. Subir los cambios.

Finalmente debemos subir todos los cambios a nuestro repositorio:

git push

Nota: si al hacer push marca conflictos, esto quiere decir que el proyecto original modificó la historia de git, por ende, tendrás que forzar los cambios con: git push --force

Conclusión

Cómo se mencionó en un inicio, el proceso de sincronización de repositorios no es de manera automática, en realidad ésto tiene muchas ventajas cuando eres contribuidor ya que no tienes que preocupate por los cambios del repositorio hasta que logras terminar tus cambios y/o hasta que necesitas hacer más cambios sobre el proyecto.

Espero que esta guía te haya servido y si tienes algún comentario o duda, siente con libertad de expresarla en los comentarios.

openSource (3 Part Series)

1) ¿Qué necesito para contribuir al código open source? 2) Git para contribuidores open source 3) Mantener actualizada una copia de repositorio

Posted on Jun 29 by:

javleds profile

Javier Ledezma

@javleds

Energetic developer attempt

Discussion

markdown guide
 

Genial!,hay poco contenido en español sobre open-source,o por lo menos lo que yo pude encontrar por lo que se agradece tus aportes,Conoces alguna comunidad sobre Open-Source en español?

 

Gracias por tu comentario, Juan! No estoy seguro si hay de open source, pero puedes buscar la comunidad de tu lenguaje favorito más la el país de residencia, por ejemplo:

node Argentina
PHP Mexico
Go Colombia

Casi todos tienen un canal en Slack o in grupo en Facebook. En ellos publican sus proyectos y no dudo que te puedas involucrar.