Skip to content

Git & GitHub

Jhuomar Boskoll Barría Quintero edited this page Sep 9, 2024 · 1 revision

Introducción a Git y GitHub

Git es un sistema de control de versiones distribuido que permite a los desarrolladores gestionar y rastrear cambios en archivos de código fuente a lo largo del tiempo. Es especialmente útil en proyectos de desarrollo de software, donde los cambios frecuentes y colaborativos requieren un seguimiento riguroso. GitHub, por su parte, es una plataforma que se apoya en Git para facilitar la colaboración entre múltiples desarrolladores, ofreciendo herramientas adicionales como la gestión de proyectos, revisión de código y comunicación entre los miembros del equipo.

Git y GitHub se han convertido en herramientas esenciales en el ámbito de las Ciencias Computacionales e Ingeniería, ya que permiten gestionar la complejidad y colaboración en proyectos de software, además de fomentar buenas prácticas de desarrollo y trabajo en equipo.


Aplicación en las Ciencias Computacionales

En carreras como Ingeniería de Sistemas y Computación, el uso de Git y GitHub es una habilidad crucial para la gestión de proyectos, tanto a nivel académico como profesional. Estas herramientas permiten:

  • Control de versiones en proyectos complejos: Los proyectos de software en Ciencias Computacionales suelen involucrar múltiples colaboradores y etapas de desarrollo. Git permite que los estudiantes puedan trabajar en paralelo, sin perder el control sobre las versiones del código.

  • Desarrollo colaborativo y distribución de tareas: GitHub facilita la colaboración en equipo, permitiendo que varios desarrolladores trabajen en diferentes aspectos del mismo proyecto, integrando las funcionalidades de manera ordenada. Esto es vital en entornos académicos y laborales donde se desarrollan proyectos multidisciplinarios y de gran escala.

  • Organización y planificación de proyectos: En la Ciencia de Datos, la Inteligencia Artificial o el desarrollo de software, los equipos utilizan GitHub no solo para manejar código, sino para organizar el flujo de trabajo y las tareas, lo que mejora la productividad y la claridad de los objetivos.


¿Por qué Usar Git y GitHub como Herramientas Colaborativas?

Las carreras de Ciencias Computacionales requieren colaboración y trabajo en equipo constante. Git y GitHub proveen el entorno ideal para lograrlo:

  1. Colaboración sin conflictos: Git permite a los estudiantes y profesionales trabajar en diferentes partes de un proyecto simultáneamente. Las ramas (branches) separan las contribuciones individuales, evitando la sobrescritura de código. GitHub luego facilita la integración de estas contribuciones mediante las Pull Requests, que permiten revisiones colaborativas antes de fusionar los cambios.

  2. Transparencia y seguimiento del progreso: GitHub proporciona un historial detallado de todos los cambios realizados en un proyecto, permitiendo que cualquier miembro del equipo pueda revisar el progreso, identificar problemas y colaborar en su resolución. Esto es particularmente importante en equipos grandes o proyectos a largo plazo, donde el seguimiento y la comunicación son clave.

  3. Comunicación y resolución de problemas en equipo: A través de herramientas como Issues y Discussions, GitHub permite a los equipos discutir problemas, hacer preguntas y coordinarse en la resolución de tareas. Esto reduce los errores y mejora la eficiencia del equipo.


Uso de GitHub Más Allá de la Programación

Aunque GitHub es conocido principalmente por su uso en el desarrollo de software, también puede ser utilizado en otros ámbitos:

  • Gestión de proyectos multidisciplinarios: GitHub no solo es útil para programadores. En un proyecto de ingeniería o investigación, puedes usarlo para gestionar archivos de documentación, informes científicos, y cualquier otro tipo de archivo que requiera control de versiones y colaboración.

  • Creación de portafolios: Los estudiantes pueden utilizar GitHub para crear un portafolio público de sus trabajos, algo altamente valorado en el ámbito laboral. Los proyectos en GitHub muestran habilidades técnicas, capacidad para trabajar en equipo y compromiso con el desarrollo continuo.


Funcionalidades de GitHub

GitHub ofrece varias herramientas clave que potencian la productividad y organización en los proyectos de ciencias de la computación e ingeniería:

1. Issues

Las Issues permiten a los usuarios crear tareas, reportar errores y hacer seguimiento de mejoras en un proyecto. Funcionan como un espacio organizado para que el equipo documente problemas y asigne responsables para su resolución. Cada Issue puede tener discusiones detalladas, lo que facilita la colaboración en problemas específicos.

Para entender mejor cómo funcionan las Issues en GitHub, puedes consultar este video: GitHub Issues: An Introduction.

2. Pull Requests

Las Pull Requests son propuestas de cambios en el código, que los colaboradores pueden revisar, discutir y aprobar antes de integrarlas al proyecto. Este proceso asegura que solo los cambios aprobados y revisados sean incorporados, fomentando la revisión colaborativa del trabajo y minimizando errores. En entornos profesionales, esta funcionalidad es crucial para mantener la calidad y consistencia del código.

Mira este video para una explicación más detallada sobre el uso de Pull Requests: How to Use GitHub Pull Requests.

3. Discussions

GitHub también ofrece la funcionalidad de Discussions, una plataforma de foros integrados donde los miembros del equipo pueden interactuar, hacer preguntas y resolver dudas. Esta herramienta fomenta la comunicación abierta y estructurada, lo cual es esencial en proyectos donde la colaboración constante es necesaria para resolver problemas complejos o coordinar implementaciones.

Para más información sobre GitHub Discussions, revisa este video: GitHub Discussions Overview.

4. Wiki

El Wiki de GitHub es un espacio donde el equipo puede crear y mantener documentación relevante del proyecto. Esto incluye manuales, guías de usuario, detalles técnicos y cualquier otra información que sea útil para el equipo o futuros colaboradores. La documentación clara y accesible es una buena práctica en cualquier proyecto de ingeniería o desarrollo de software, ya que garantiza que todos los miembros del equipo entiendan la arquitectura del proyecto.

Para aprender más sobre cómo usar wikis en GitHub, puedes revisar la documentación oficial: GitHub Wikis: Documenting Your Project.

5. Projects

GitHub también ofrece la funcionalidad de Projects, una herramienta de gestión de proyectos que permite organizar tareas mediante tableros Kanban. Esta herramienta visualiza el flujo de trabajo, ayudando al equipo a organizar las tareas pendientes, en proceso y completadas. Los Projects mejoran la planificación y coordinación del equipo, permitiendo una gestión más efectiva del tiempo y los recursos.

Consulta este video para una guía práctica sobre cómo usar GitHub Projects: Organizing Projects in GitHub y Getting Started with GitHub Projects.


Conexión con los 7 Hábitos de la Gente Altamente Efectiva

Los principios descritos en el libro "Los 7 hábitos de la gente altamente efectiva" de Stephen Covey se alinean estrechamente con las mejores prácticas en el uso de Git y GitHub:

1. Ser proactivo

El uso de Git y GitHub fomenta la proactividad, ya que los desarrolladores pueden anticiparse a problemas y mantener un control activo sobre su progreso a través de issues, pull requests y revisiones de código.

2. Comenzar con un fin en mente

El uso de Projects en GitHub ayuda a visualizar los objetivos y mantener el equipo alineado en los entregables, permitiendo que el trabajo avance con un propósito claro.

3. Primero lo primero

La organización de tareas y la priorización de issues permite que los equipos se concentren en las tareas más importantes y urgentes antes de avanzar a nuevas implementaciones o mejoras.

4. Pensar en ganar-ganar

GitHub promueve la colaboración efectiva. Las revisiones de código y las discusiones constructivas ayudan a encontrar soluciones donde todos los miembros del equipo se beneficien.

5. Buscar primero entender, luego ser entendido

La funcionalidad de Discussions en GitHub refuerza este hábito, ya que permite a los miembros del equipo hacer preguntas y resolver dudas antes de proceder con cambios, asegurando que todos entiendan los problemas antes de proponer soluciones.

6. Sinergizar

GitHub es una plataforma diseñada para la colaboración, permitiendo que las habilidades individuales se combinen de manera efectiva para lograr resultados que no se podrían obtener de manera individual.

7. Afilar la sierra

GitHub permite la mejora continua a través de la retroalimentación constante en pull requests y revisiones de código, ayudando a los desarrolladores a aprender y mejorar sus habilidades técnicas con cada proyecto.