Presentando a Github

Programa con Paco
5 min readMar 25, 2021

--

Uno de los primeros problemas en los que se aventura una persona cuando comienza en el mundo del desarrollo de software es en el control de versiones del código fuente del software que desarrolla. Este problema ha motivado la creación de varias soluciones para hacer control de versiones los llamados Sistemas de Control de Versiones (CVS por sus siglas en inglés).

Durante toda la formación de un desarrollador es imposible no haber escuchado a Github. ¿Y qué es Github y cuál es su relación con el control de versiones? es lo que tratamos en este articulo.

¿Qué es el control de versiones?

El control de versiones es un sistema que ayuda a rastrear y gestionar los cambios realizados en un archivo o conjunto de archivos. Utilizado principalmente por ingenieros de software para hacer un seguimiento de las modificaciones realizadas en el código fuente, el sistema de control de versiones les permite analizar todos los cambios y revertirlos sin repercusiones si se comete un error.

En otras palabras, el control de versiones permite a los desarrolladores trabajar en proyectos simultáneamente. Les permite hacer tantos cambios como necesiten sin infringir o retrasar el trabajo de sus colegas.

Si esos cambios en el código fuente arruinan el proyecto cuando se implementan, GitHub hace que sea fácil revertirlos con unos pocos clics, y se recuperará la versión anterior del proyecto.

En síntesis, el control de versiones elimina los riesgos y el miedo a cometer demasiados errores. En cambio, proporciona la libertad de colaborar y desarrollar sin demasiadas preocupaciones.

¿Qué es Git?

Git es un proyecto de código abierto que se inició en 2005 y creció hasta convertirse en uno de los VCS más populares del mercado: cerca del 87% de los desarrolladores utilizan Git para sus proyectos.

Se trata de un sistema de control de versiones distribuido. Esto significa que cualquier desarrollador del equipo que tenga acceso puede gestionar el código fuente y su historial de cambios utilizando las herramientas de línea de comandos de Git.

Infografía sobre Git. (Tomada de EDTeam)

A diferencia de los sistemas de control de versiones centralizados, Git ofrece ramas de características. Esto significa que cada ingeniero de software en el equipo puede dividir una rama de características que proporcionará un repositorio local aislado para hacer cambios en el código.

Las ramas de características no afectan a la rama principal, que es donde se encuentra el código original del proyecto. Una vez que se hayan realizado los cambios y el código actualizado esté listo, la rama de características puede fusionarse de nuevo con la rama maestra, que es la forma en que se harán efectivos los cambios en el proyecto.

¿Qué es Github?

A grandes rasgos Github es un proveedor de hospedaje (hosting en inglés) en internet para desarrollo de software y control de versiones usando Git. Ofrece control de versiones distribuido y manejo de codigo fuente, ambas funciones de Git, además otras características para facilitar el ciclo de desarrollo de software. Brinda control de acceso, características de colaboración como seguimiento de errores, solicitudes de incorporación de características, administración de tareas o proyectos como Trello, integración continua y despliegue continuo (CI/CD por sus siglas en inglés). Actualmente es una empresa subsidiaria de Microsoft desde el 2018.

Siendo el repositorio de código por excelencia para proyecto de Software Libre, actualmente Github posee más de 56 millones de desarrolladores, más de 3 millones de organizaciones, y más de 100 millones de repositorios de código.

Características

El principal propósito de Github es facilitar el ciclo de desarrollo de software. Github brinda las siguientes características:

  • Etiquetas, hitos, asignación de responsabilidades y un motor de búsqueda para el seguimiento de errores.
  • Solicitudes de incorporación de cambios (Pull request): consiste en la acción de validar un código que se va a fusionar de una rama a otra. En este proceso de validación pueden entrar los factores que queramos: validaciones automáticas de integración, asignación de código a tareas, validaciones manuales por parte del equipo, despliegues, etc. Brindando la posibilidad de ver de forma muy sencilla las diferencias del código, y comentarlas, aprobarlas, proponer cambios, etc.
  • Documentación, incluyendo el renderizado automatico de los archivos README empleando Markdown.
  • Wikis
  • GitHub Actions: se usan para construir flujos de integración y despliegue continuo para pruebas o despliegues, todo de forma automática.
  • Gráficas: gráficas con información como los contribuidores, frecuencia de código, miembros, commits, y más.
  • Notificaciones vía email: notificaciones via email configurables ante determinados eventos.
  • Discusiones
  • Soporte para emojis
  • Alertas de seguridad para Vulnerabilidades o Exposiciones Comunes en nuestro codigo o en sus dependencias

Las anteriores son algunas de las características más conocidas de Github.

Paquete de Github para Educación

Github brinda un programa llamado Paquete de Github para Estudiantes Desarrolladores (GitHub Student Developer Pack en inglés). Es básicamente un paquete que brinda acceso gratuito por un periodo de tiempo (generalmente mientras eres estudiante) a servicios o herramientas populares de desarrollo, como por ejemplo Azure, JetBrains, DigitalOcean, Namecheap, SendGrid, Stripe, Travis CI y Unreal Engine entre otros.

Github brinda además el programa Expertos del Campus (GitHub Campus Expert en inglés) que se basa en entrenar y formar estudiantes a través de comunidades tecnologícas en sus propias universidades.

Conclusión

Aunque GitHub es conocido principalmente dentro de la comunidad de ingenieros de software, puede ser utilizado en una variedad de industrias diferentes. Cualquier equipo o empresa que trabaje en diferentes proyectos que requieran desarrollo en forma de archivos puede utilizar este servicio.

Por ejemplo, los equipos de contenido y marketing pueden utilizar GitHub para organizar sus proyectos. Los creativos freelance pueden utilizarlo para gestionar su trabajo cuando trabajan con otras personas.

Usar GitHub no significa necesariamente usar código o ser un desarrollador. Es una plataforma de sistema de control de versiones gratuita que puede utilizarse de muchas maneras diferentes.

Esperamos que te haya sido sido útil esta Presentación de Github. ¿Estás pensando en empezar a usar GitHub? ¡Cuéntanos en comentarios!

--

--

Programa con Paco
Programa con Paco

Written by Programa con Paco

Noticias, comentarios, recomendaciones, consejos… principalmente sobre desarrollo de software y tecnología

No responses yet