Cómo contribuir en proyectos con Git y GitHub

¿Quieres contribuir con los próximos proyectos de Panama Hitek? Ya se ha publicado un artículo en Panama Hitek títulado Guía básica sobre el uso de Git y GitHub donde se escribe acerca de los conceptos básicos para trabajar con los repositorios, recomiendo que leas esta entrada primero y luego comiences a leer ésta. En esta entrada entonces te enseñaré cómo puedes colaborar en alguno de nuestros proyectos colocados en nuestra cuenta de GitHub, todo esto haciendo uso del sistema de control de versiones creado por Linus Torvals llamado git. Con este artículo se pretende también que el usuario puede comenzar no sólo a colaborar con nuestros proyectos sino con cualquier proyecto disponible en GitHub además de fomentar el uso diario de git para versionar cualquier documento o proyecto que el usuario crea necesario. Recordemos que git es una herrramienta que nos permite guardar los cambios de los archivos a medida que pasa el tiempo que brinda muchas ventajas entre las que destacan el trabajo en paralelo de varias personas en un solo proyecto. Así que más, ¡Comenzamos!

Primero que todo en este tutorial se asume que ya tienes una cuenta en GitHub, si no te has hecho una te recomiendo que te la hagas a través de esta direccción. Además, se asume que estás trabajando bajo una distribución Linux/GNU con git instalado y que tienes algo de conocimiento en comandos de consola.

Haciendo fork del repositorio

Una vez que tenga tu cuenta de GitHub, si quieres comenzar a contribuir con los proyectos de Panama Hitek, tan solo elige alguno de los repositorios disponibles en el espacio de Panama Hitek en GitHub. Una vez que hayas seleccionado un proyecto con el cual contribuir, dirígete a la página de ese repositorio o proyecto y dale clic al ícono que aparece en la parte superior derecha que dice: “Fork”. A continuación puedes ver el icono en la siguiente imagen:

"Forkeando" el proyecto a contribuir en GitHub.
“Forkeando” el proyecto a contribuir en GitHub.

Al hacer fork del proyecto lo que estarás haciendo es un clone del repositorio dentro de tu cuenta de GitHub. Si ingresas a tu cuenta de GitHub, en la pantalla principal observarás que te aparecerá el repositorio “forkeado”. Para realizar este tutorial he seleccionado trabajar con el repositorio Arduino DataLogger, por lo tanto en la siguiente imagen podrás observar en el apartado de repositorios contribuidos el proyecto Arduino DataLogger confirmando que efectivamente se ha hecho un fork del repositorio.

Repositorio forkeado en nuestro repositorio remoto personal.
Repositorio forkeado en nuestro repositorio remoto personal.

Trabajando con el repositorio localmente

GitHub recordemos que es una especie de servidor que aloja una cantidad inimaginable de repositorios que ejercen el papel de repositorios centrales, es decir, es el repositorio donde se hospedarán todos los cambios oficiales de las personas que estén trabajando desde N estaciones de trabajo.

Por lo tanto, es necesario que para trabajar con el repositorio que acabas de “forkear” hagas un clone de ese repositorio a la máquina o estación de trabajo donde vayas a hacer los cambios o las nuevas implementaciones.

Para esto puedes utilizar el comando git clone <direccion-del-repo-a-clonar>. La dirección del repo a clonar la podrás encontrar en la página central del repositorio en la parte derecha. En la siguiente imagen puedes encontrar el ejempli aplicado a este tutorial.

Obteniendo el url del repositorio para posteriormente clonarlo en la estación de trabajo o máquina personal.
Obteniendo el url del repositorio para posteriormente clonarlo en la estación de trabajo o máquina personal.

Una vez tengas la dirección del repo a clonar, ejecuta el siguiente comando en la terminal:

Observarás que comenzarán a salirte algunos mensajes que te indicarán que se está clonando el repositorio hasta que después te salga nuevamente el prompt. En la siguiente imagen tiene el resultado de clonar el repo.

Clonando repositorio a través de git en consola.
Clonando repositorio a través de git en consola.

Ahora que ya tienes el repositorio en tu máquina, podrás entrar en el y hacer los cambios o generar las nuevas implementaciones. Haciendo uso de los comandos git add, git commit, y git push. Te recomiendo que crees un branch nuevo para que trabajes sobre aquellos cambios.

Puedes agregar un branch haciendo uso del comando git checkout -b nombre-del-branch. Vamos a asumir que quisieras trabajar en una implementación para que Arduino DataLogger envie los datos registrado a un correo electrónico. Podrías crearte un branch con nombre send-email y la manera de hacerlo sería:

Al ejecutar este comando git te cambiará automáticamente al branch que has creado. Presento a continuación una imagen representativa:

Creando un branch de nombre send-email en el repositorio local.
Creando un branch de nombre send-email en el repositorio local.

Por otro lado, si haces un git branch podrás observar la lista de branches o ramales que tienes disponibles en tu repositorio local.

Ahora en este momento, puedes hacer tus cambios. Y cuando crees que esté lista la funcionalidad, podrás agregar los archivos que han cambiado, los que se han adicionado, etc con git add nombre-del-archivo-cambiado-o-nuevo

Luego, harás un commit de la funcionalidad haciendo uso de git commit -m “Colocar aquí un mensaje descriptivo de los cambios realizados.”

Haciendo pull a tu repositorio remoto contribuido

Una vez que se hayan hecho los commits de tus cambios en el repositorio local. Es necesario que actualices tu repositorio remoto contribuido. Esto lo haces con el comando git push origin nombre-del-branch-a-actualizar.

Aplicado a nuestro ejemplo, se haría de la siguente manera:

Este comando le está indicando a git que debe subir los cambios realizados en el branch send-email dentro del repositorio remoto. Como se ha creado el branch en el repositorio local, git se encargará de crear el branch en el repositorio remoto. Para que observes gráficamente cómo sucede, agregaré unos cambios al código y haré un push. Presento las imágenes que ilustran lo comentado.

Realizando cambios al repositorio local y haciendo commit de ellos.
Realizando cambios al repositorio local y haciendo commit de ellos.
Actualizando el repositorio contribuido remoto a través del uso de push.
Actualizando el repositorio contribuido remoto a través del uso de push.

Haciendo un pull request al repositorio oficial del proyecto

Finalmente, para poder compartir tus contribuciones del proyecto con el repositorio oficial se hace uso de lo que se conoce como un pull request. Para hacer un pull request en GitHub, lo que deberás hacer es darle clic al ícono que aparece en la página oficial de tu repositorio remoto en el lado derecho que dice: “Pull Request” y luego hacer clic donde dice “New pull request”.

como-contribuir-a-un-proyecto-en-github-8
Localizando la sección de Pull Requests.

En esta sección deberás seleccionar el branch del repositorio oficial al cual deseas agregar las implementaciones que en este caso será “master” y luego el branch donde están tus cambios realizados que sería “send-email”. Haces clic en “Create pull request”. Y listo. Ya has creado una solicitud para integrar la funcionalidad send email en el repositorio ArduinoDataLogger.

Penúltimo paso antes de efectuar oficialmente el pull request. Aquí puedes añadir un comentario adicional.
Penúltimo paso antes de efectuar oficialmente el pull request. Aquí puedes añadir un comentario adicional.
Creando el pull request en donde seleccionarás los branches a comparar.
Creando el pull request en donde seleccionarás los branches a comparar.
Pull Request creado satisfactoriamente.
Pull Request creado satisfactoriamente.

Lo único que faltaría es esperar a que alguno de los administradores del repositorio revisen los cambios realizados y le de un go. Si todo sale bien, podrás observartus cambios pronto en el repositorio oficial y así podrás haber contribuido con el proyecto.

Espero que les haya gustado esta entrada y si te ha gustado por favor, danos like. Si no te has hecho fan del grupo en Facebook, te invito a que lo hagas para que estés pendiente de todas nuestras actividades.

¿Te gustó? ¡Comparte!Share on LinkedInShare on FacebookTweet about this on TwitterEmail this to someoneShare on RedditShare on TumblrShare on Google+Pin on PinterestBuffer this page