Tus repositorios locales son una copia completa de los proyectos que están en GitHub para que puedas guardar los cambios localmente cada vez que tengas algunos. Cuando trabajas en local puedes hacer cambios a cientos de archivos a la vez y luego hacer un único guardado (commit) de todos ellos.
Verás que tienes cambios cuando aparezca un número en el icono del botón Source control.
Haz click en Source control.
En el subpanel Source control, verás una lista de archivos modificados. Pasa el ratón sobre ellos y haz click en el botón Stage changes que aparecerá.
Una vez que los cambios están en el stage, introduce un mensaje para el guardado (commit) y haz click en el botón Commit. Los cambios se agregan a tu repositorio local.
Para enviar tus cambios a tu repositorio remoto en GitHub, haz click en el botón Sync changes que aparece cuando existen nuevos commits. Esto hará un pull y push recibiendo y enviando cualquier cambio entre tu copias local y remota del proyecto.
Puedes verificar que tus commits se envían correctamente abriendo tu página de GitHub Urantiapedia.
¶ Sincronizar cambios entre los dos proyectos de Urantiapedia
El proyecto Urantiapedia es la versión para desarrollo y trabajo con los contenidos. El proyecto Urantiapedia-backup contiene únicamente el contenido, y está sincronizado con la página web, por lo que introducir cambios en él equivale a hacer cambios masivos en la web, siempre que estos cambios sean introducidos por los Administradores o aceptados por los Administradores a través de una solicitud de cambios.
Si tus cambios en el proyecto Urantiapedia incluyen cambios en el contenido (carpeta /output/wikijs) debes sincronizar esos cambios con el proyecto Urantiapedia-backup con cualquier utilidad de sincronización o bien simplemente copiando y pegando entre carpetas.
Esta duplicidad de ambos proyectos puede resultar un poco engorrosa pero está diseñada así por temas de seguridad.
¶ Crear solicitudes de cambios (pull requests) para los proyectos de Urantiapedia
Cuando tengas un número suficiente de commits enviados a tus propias copias de los proyectos (forks) Urantiapedia, puedes enviar una solicitud de cambios a los proyectos originales (pull requests) para que los cambios puedan revisarse y fusionarse en ellos. Esto se denomina pull request en la terminología de GitHub.
Abre cada una de las páginas de Urantiapedia en GitHub.
https://github.com/<username>/urantiapedia
https://github.com/<username>/urantiapedia-backup
Asegúrate de estar en la rama principal que se llama master. La rama aparece en un menú en la parte superior de la lista de archivos. Normalmente sólo tendrás esa rama.
Selecciona el menú Contribute que aparece a continuación y luego selecciona Open pull request. Si el menú dice This branch is not ahead of the upstream master (Esta rama no está por delante de la rama master), primero debes hacer un fetch del proyecto principal. Mira más adelante.
Agrega un título a tus contribuciones. También puedes agregar una descripción.
Haz click en Create pull request. Haz un pull request por cada proyecto en el que tengas cambios.
Esto enviará una notificación a los administradores del proyecto que fusionarán sus cambios si no encuentran problemas.
Como Urantiapedia es el esfuerzo de un equipo de colaboradores, es común que en cualquier momento tus copias de los proyectos (forks) no estén sincronizadas con los proyectos originales. Es una buena práctica que antes de cualquier pull request sincronices tus forks con los proyectos originales.
Abre cualquiera de tus proyectos de Urantiapedia en GitHub.
Haz clic en la opción Sync fork. Se te mostrará un menú indicando cuántos guardados (commits) se han hecho al proyecto original que no están en tu copia. En la imagen observa que hay 4 guardados que no tenemos y por tanto nuestra copia está desactualizada (This branch is out-of-date). Simplemente haz clic en Update branch para traer a tu copia los cambios que hay en el proyecto original.
Espera unos segundos mientras GitHub actualiza tu copia. Al finalizar, si vuelves a hacer clic en la opción Sync fork verás que ya está todo actualizado indicando que los cambios no están retrasados respecto al original (This branch is not behind the upstream).
Ve a VS Code.
Abre el proyecto como ya se ha explicado.
En el panel Source control, ve al subpanel Commits. Haz click en el botón pequeño Fetch y luego en el botón Pull al lado de éste. Esta acción recupera y envía cambios al mismo tiempo para sincronizar el repositorio local.
A veces, los cambios en el código de las Urantiapedia Tools implican cambios en las dependencias. Debes instalar o actualizar nuevas dependencias ejecutando el comando npm install desde una terminal en VS Code. Esto actualizará las dependencias del proyecto.
En resumen, el proceso en GitHub es el siguiente (ver el diagrama):
Los «Editores jefe» se crean una copia (1) (fork) en su propia cuenta de los proyectos Urantiapedia en GitHub: Urantiapedia y Urantiapedia-backup. También mantienen sincronizadas estas copias mediante un Sync fork o Fetch upstream (1).
Los «Editores Jefe» se crean una copia local de los proyectos en su PC. Esto se hace a través de una acción clone (2) en VS Code. También mantienen esas copias locales sincronizadas a través de acciones fetch + pull en VS Code (2), que descargan cualquier cambio en la copia local.
Los «Editores jefe» realizan cambios en la copia local de los proyectos y hacen commits (3) en su copia local para ir guardando los cambios.
Los «Editores jefe» envían sus cambios a sus proyectos de GitHub a través de acciones push (4).
Luego, los «Editores jefe» crean solicitudes de cambios (pull requests) (5) desde el sitio web de GitHub para ambos proyectos: Urantiapedia y Urantiapedia-backup.
Estos pull requests de los «Editores Jefe» son revisados por un «Administrador», quien se encarga de hacer una fusión (merge) (6) de todos aquellos cambios que sean correctos. Cualquier cambio que no sea correcto será rechazado (6) y se notificará a los «Editores Jefe» para que lo corrijan.
Cuando los cambios son correctos, el «Administrador» la fusión (merge) en el proyecto urantiapedia-backup original provoca que los cambios se sincronicen automáticamente con la web, que en pocos minutos aparecerá actualizada. (7)