Git y Github
Trabajo colaborativo en GitHub
En este módulo, exploraremos cómo trabajar en equipo usando GitHub. GitHub ofrece muchas funcionalidades y flujos de trabajo que facilitan la colaboración en proyectos de software, como la contribución a repositorios, el uso de issues, y la integración con otras herramientas.
Preparación para el trabajo colaborativo
Clonar un repositorio
Para colaborar en un proyecto, el primer paso es clonar el repositorio remoto a tu máquina local:
bash
Contribuir a un proyecto
Creación de ramas
Siempre crea una nueva rama para trabajar en una característica o corrección de errores. Esto evita conflictos y facilita la integración de los cambios.
bash
Realizar commits y push
Realiza commits frecuentes y descriptivos, luego sube tus cambios al repositorio remoto:
bash
Pull Requests
Crear un Pull Request (PR)
Un Pull Request (PR) es una solicitud para fusionar tus cambios en la rama principal del repositorio. Para crear un PR:
- Navega al repositorio en GitHub.
- Ve a la sección "Pull requests" y haz clic en "New pull request".
- Selecciona la rama con tus cambios y la rama de destino.
- Proporciona un título y una descripción detallada del PR.
- Haz clic en "Create pull request".
Revisar y fusionar un PR
Las revisiones de PR son esenciales para asegurar la calidad del código:
- Asigna revisores para que revisen tu PR.
- Los revisores pueden comentar sobre líneas específicas de código, solicitar cambios o aprobar el PR.
- Una vez aprobado, el PR puede ser fusionado utilizando el botón "Merge pull request".
Issues y gestión de tareas
Crear y gestionar issues
Los issues son herramientas poderosas para rastrear bugs, tareas y mejoras:
- Navega a la pestaña "Issues" del repositorio.
- Haz clic en "New issue".
- Proporciona un título y descripción detallada, incluyendo pasos para reproducir el problema, si es necesario.
- Asigna etiquetas, colaboradores y un hito si aplica.
Usar Project Boards
GitHub proporciona tableros de proyecto (Project Boards) que permiten gestionar tareas visualmente usando tarjetas y columnas:
- Crea un nuevo tablero bajo la pestaña "Projects".
- Añade columnas como "To do", "In progress" y "Done".
- Crea tarjetas que representen issues o PRs y muévelas a lo largo del flujo de trabajo.
Sincronización de cambios
Actualizar localmente los cambios del repositorio remoto
Para mantener tu repositorio local actualizado con la rama principal del remoto, usa:
bash
Rebase de una rama
El rebase re-aplica los commits de tu rama sobre la última versión de la rama principal, manteniendo así un historial más limpio:
bash
Revisiones de código
Comentarios en PRs
Los revisores pueden dejar comentarios en líneas específicas del código en un PR. Es una buena práctica responder a estos comentarios para interacciones efectivas.
Solicitar cambios
Si un PR necesita ajustes, los revisores pueden solicitar cambios. El autor debe abordar estos comentarios y hacer push de commits adicionales hasta que todo esté aprobado.
Integración continua
GitHub Actions
GitHub Actions permite automatizar flujos de trabajo, como pruebas y despliegues:
- Crea un archivo de workflow en
.github/workflows
. - Define trabajos (
jobs
) y pasos (steps
) necesarios.yaml
Ejemplo práctico
-
Clonar el repositorio:
bash -
Crear una nueva rama:
bash -
Hacer cambios, commit y push:
bash -
Crear un Pull Request (PR):
- Navega a "Pull requests" en GitHub y selecciona "New pull request".
- Selecciona
nueva-funcionalidad
como la rama de origen ymain
como la de destino. - Crea el PR con un título y descripción adecuados.
Con estas herramientas y flujos de trabajo, puedes colaborar efectivamente en proyectos usando GitHub. En el próximo módulo, aprenderemos a manejar Pull Requests y revisiones de código en detalle.
- Introducción a Git y GitHub
- Instalación y configuración de Git
- Fundamentos de control de versiones
- Creación y clonación de repositorios
- Realización de commits y seguimiento de cambios
- Gestión de ramas (branching)
- Fusionado de ramas (merging)
- Resolución de conflictos
- Trabajo colaborativo en GitHub
- Pull requests y revisiones de código
- Uso avanzado de Git (rebase, cherry-pick, etc.)
- Automatización con Git hooks
- Integración continua con GitHub Actions
- Gestión de versiones y lanzamiento de releases
- Conclusiones y mejores prácticas en Git y GitHub