GitHub es un servicio de alojamiento de repositorios de código abierto, una especie de nube de código. Aloja sus proyectos de código fuente en una variedad de lenguajes de programación diferentes y realiza un seguimiento de los diversos cambios realizados en cada nueva generación. El servicio es capaz de hacer esto usando git, un sistema de control de versiones que se ejecuta en la interfaz de línea de comandos.
Para los usuarios, hay disponibles también otras fuentes bastante similares a GitHub. Algunas de ellas son BitBucket, Microsoft Team Foundation Server, etc. Sin embargo, de todas ellas, la mejor y más recomendable es GitHub, por número de usuarios.
Porque el tamaño de la comunidad debería ser importante para cualquier desarrollador de código abierto, ya que además también es la mejor forma de que la mayor cantidad de gente posible vea tu proyecto. Desde el año 2018, GitHub reportó tener más de 28 millones de usuarios, una cifra que resulta significativamente más alta que los números que manejan sus competidores.
Las otras diferencias con respecto a otras zonas de intercambio de código y para encontrar código para apps, tienen que ver con el coste. GitHub ofrece repositorios privados sólo con un coste adicional, mientras que algunos de los otros servicios ofrecen repositorios privados de forma gratuita. Sin embargo, éstos tienen almacenamiento y ancho de banda limitados.
El uso de GitHub facilita la colaboración con otros usuarios y compañeros de trabajo, así como la revisión de las versiones anteriores de un determinado proyecto.
Si aún no estás usando GitHub para tus proyectos de codificación, aquí tienes tres motivos por los que deberías empezar a hacerlo:
Para entender GitHub, primero debes tener una comprensión de Git. Git es un sistema de control de versiones de código abierto que fue iniciado por Linus Torvalds, la misma persona que creó Linux. Git es similar a otros sistemas de control de versiones: Subversion, CVS y Mercurial, por nombrar algunos.
Se trata de un sistema de control de versiones, es decir, cuando los desarrolladores una aplicación, por ejemplo, hacen cambios constantes en el código, liberando nuevas versiones después de la primera versión oficial.
Los sistemas de control de versiones mantienen estas revisiones en orden, almacenando las modificaciones en un repositorio central. Esto permite a los desarrolladores colaborar fácilmente, ya que pueden descargar una nueva versión del software, realizar cambios y cargar la última revisión. Todos los desarrolladores pueden ver estos nuevos cambios, descargarlos y contribuir.
Del mismo modo, las personas que no tienen nada que ver con el desarrollo de un proyecto pueden descargar los archivos y utilizarlos.
Este es el sistema de control de versiones preferido por la mayoría de los desarrolladores, ya que tiene múltiples ventajas sobre los otros sistemas disponibles. Almacena los cambios de archivos de forma más eficiente y garantiza una mejor integridad de los mismos.
Si Git es una herramienta de línea de comandos, pero el centro alrededor del cual giran todo el universo de GitHub.com es el hub-GitHub.com, donde los programadores almacenan sus proyectos y se relacionan con gente de ideas similares.
A continuación, se detallan las principales razones por las que a los geeks les gusta usar GitHub, y de paso, podremos aprender algo de terminología útil en este campo.
Un repositorio (normalmente abreviado como «repo») es una ubicación donde se almacenan todos los archivos de un proyecto en particular. Cada proyecto tiene su propio repositorio, y se puede acceder a él con una URL única.
«Forking» es cuando se crea un nuevo proyecto basado en otro proyecto que ya existe. Esta es una característica sorprendente que fomenta enormemente el desarrollo de programas y otros proyectos.
Cualquiera que encuentre un proyecto en GitHub en el que le gustaría contribuir, puede usar el repositorio, hacer los cambios que desee y publicar el proyecto revisado como un nuevo repositorio. Lo bueno es que si el repositorio original sobre el que ha trabajado para crear su nuevo proyecto se actualiza, es posible añadir fácilmente esas actualizaciones a la nueva versión.
Si ya has forjado un repositorio, has hecho una gran revisión del proyecto, y quieres que sea reconocido por los desarrolladores originales e incluso incluido en el proyecto/repositorio oficial, se puede hacer creando una orden pull.
Los autores del repositorio original pueden ver el trabajo, y luego elegir si lo aceptan o no en el proyecto oficial. Cada vez que alguien emite una solicitud de pull, GitHub proporciona un medio perfecto para que el programador que ha cogido el repositorio y el encargado del mantenimiento del proyecto principal se comuniquen.
El aspecto de las redes sociales de GitHub es probablemente su característica más poderosa, permitiendo que los proyectos crezcan más que cualquiera de las otras características ofrecidas. Cada usuario de GitHub tiene su propio perfil que actúa como un currículum vitae, mostrando su trabajo pasado y sus contribuciones a otros proyectos a través de solicitudes pull.
Antes de la llegada de GitHub, los desarrolladores interesados en contribuir a un proyecto necesitaban encontrar alguna forma de ponerse en contacto con los autores, en un proceso mucho más costoso y complicado.
Cuando varias personas colaboran en un proyecto, es difícil hacer un seguimiento de las revisiones: quién cambió qué, cuándo y dónde se almacenan esos archivos. GitHub se encarga de este problema haciendo un seguimiento de todos los cambios que han sido enviados al repositorio.
Aunque es mucho menos común, puedes usar GitHub para cualquier tipo de archivos. Si tienes un equipo que está constantemente haciendo cambios en un documento de Word, por ejemplo, puedes usar GitHub como sistema de control de versiones. Esta práctica no es común, ya que hay mejores alternativas en la mayoría de los casos, pero es algo a tener en cuenta.
Ahora que sabes de qué se trata GitHub, ¿estás listo para empezar a crear? Puedes visitar el GitHub de Walkiria Apps o contactarme para que te ayude a desarrollar tu proyecto app.