Skip to content
Jorge Martín edited this page Mar 18, 2015 · 16 revisions

#Cómo contribuir a AL SIGM en @github

Git, como herramienta de versionado, ha ganado mucha popularidad, pero además, la llegada de github como repositorio de código ofrecido como servicio a modo de SaaS, hay dudas sobre qué ha provocado más popularidad a qué, si git a github, o github a git, dejemos la discusión para otro momento :-). Por lo tanto no es raro que la mayoría de herramientas y librearías que usas en el día a día estén alojadas en github, lo que hace realmente valioso que se tengan al menos conocimientos rudimentarios de git, y más aún saber cómo poder contribuir con parches o cambios a tus proyectos preferidos.

Imagina que estás trabajando y encuentras un bug en una biblioteca, esta biblioteca está escrita en un lenguaje que conoces y decides dar un paso al frente y resolver el problema. Daremos por supuesto que conoces los comandos básicos de git y que ya tienes una cuenta creada y configurada en github para poder trabajar, si no es así, puedes consultar el libro Pro git para resolver cualquier tipo de duda al respecto.

##Creando un fork

El primer paso es crear un fork del repositorio sobre el quieres colaborar, los manteiners del proyecto a priori no confían en cualquier persona para aceptar sus contribuciones de código, por lo que si quieres hacer tus cambios necesitas primero crear un fork, que no es mas que crear una copia del repositorio en tu cuenta de github local en la cual tú tengas control total.

##Crea el fork en local

Supongamos que creaste un fork del repositorio de AL SIGM:https://github.com/Cenatic/alsigm, ahora deberás hacer un clone. ej:git clone git@github.com:tuusuario/hardcodersmx.github.com

Clona tu repositorio
1
git clone git@github.com:tuusuario/cenatic/alsigm.github.com

Con esto tendrás una copia local (clone) de tu fork en github, ya estamos casi listos para empezar a trabajar.

##Crea tu 'feature branch'

En este momento estás listo para corregir el bug, pero antes de ponerte a desarrollar hay algo más que deberías hacer. La mayoría de los proyectos, casi todos, prefieren que todos tus cambios los hagas en un 'feature branch', esto es, que crees una nueva rama de desarrollo para añadir tus cambios, esto es útil para aislar tus cambios de todo lo demás, y te puede ser útil si en medio del desarrollo encuentras algún otro bug. En lugar de dejar todo embarrado en la misma rama deberás crear una nueva rama para ese otro 'feature', así el mantainer del proyecto podrá aplicar los cambios individualmente.

Recuerda siempre usar un nombre descriptivo para la rama que vas a crear.