¿Cómo integrar herramientas de Git y GitHub en un proyecto real?
El mundo del desarrollo de software se enriquece con herramientas colaborativas que facilitan el trabajo en equipo y la gestión de proyectos. Git y GitHub son dos de estos recursos esenciales que, cuando se integran correctamente, facilitan la colaboración y aseguran un flujo de trabajo eficiente. Aquí exploraremos cómo aprovechar al máximo estas herramientas y unirlas en un proyecto real.
¿Cómo crear un repositorio en GitHub y clonarlo de manera local?
Para comenzar, necesitas crear un repositorio en GitHub y clonarlo en tu entorno local. Asegúrate de contar con un README.md para documentar tu proyecto desde el inicio. Una vez en tu máquina local, abre el repositorio en un editor de código como Visual Studio Code. Este será el punto de partida para organizar tu desarrollo.
Crear el directorio .github: Usa este directorio para almacenar plantillas y otras configuraciones.
Agregar plantillas: Añade un archivo como pull-request-template.md para formalizar los procesos colaborativos y asegurarte de que todos los miembros del equipo siguen las mismas pautas al crear un pull request.
¿Cómo gestionar ramas y commits de manera efectiva?
En Git, siempre es recomendable trabajar en ramas diferentes al main para evitar conflictos y mantener el código base seguro. Crea una nueva rama para cada característica o tarea que estés desarrollando.
Crear una nueva rama:
Siempre asegúrate de estar fuera de la rama principal cuando desarrolles nuevas características.
Usa un nombre descriptivo para la rama que refleje la tarea que estás realizando.
git checkout -b mi-nueva-rama
Realizar commits: Asegúrate de que cada commit describa claramente los cambios realizados.
gitadd.git commit -m "Implementación de nueva API"
¿Cómo desarrollar y probar una API en Python?
Hemos hablado sobre la configuración del entorno de desarrollo; ahora, toca desarrollar una simple API en Python.
Configurar la estructura del proyecto:
Crea una carpeta dedicada para tu API, por ejemplo, api.
Añade un archivo app.py y requirements.txt en la raíz de tu carpeta de API.
Instalar las dependencias necesarias:
Asegúrate de que requirements.txt contenga todos los paquetes necesarios.
pip3 install -r requirements.txt
Desplegar la API:
Usa herramientas como uvicorn para lanzar tu servidor y verificar que todo funcione correctamente.
uvicorn app:app --reload
¿Cómo efectuar un pull request en GitHub?
Al finalizar tus cambios y haberlos probado adecuadamente, es hora de subirlos a GitHub y abrir un pull request. Esto no solo integra tus cambios al repositorio principal, sino que también permite revisiones de tus compañeros de equipo.
Subir cambios a GitHub:
Asegúrate de estar en la rama correcta y empuja tus cambios.
git push -u origin mi-nueva-rama
Crear un pull request:
Utiliza el archivo pull-request-template.md para seguir una guía estructurada en el momento de realizar el pull request.
Compartir una base común, usando las plantillas y el flujo de trabajo explicados, asegura que todos los miembros del equipo estén alineados y que el proyecto avance sin contratiempos.
Consejos adicionales
Nunca trabajes directamente en main: Esto protege la integridad del proyecto principal y permite un flujo de desarrollo más organizado.
Utiliza plantillas: Tanto para issues como para pull requests, asegurando que toda la comunicación sea clara y relevante.
Revisión de código colaborativo: Anima a tus compañeros a revisar el código antes de fusionarlo en el main, esto ayuda a detectar errores más temprano y aprender de los diferentes enfoques en el equipo.
Este proceso asegura no solo una correcta integración de herramientas, sino que también fomenta un ambiente de trabajo colaborativo y organizado, esencial en todo proyecto de software.
### Descripción del cambioPor favor, proporciona una descripción detallada de los cambios realizados en este PR.
### ¿Cuál es el contexto de este cambio?Explica el contexto y por qué se necesita este cambio.
### ¿Cómo se probaron estos cambios?Describe los pasos que tomaste para probar que los cambios funcionan como se espera.
### ¿Existen tickets relacionados?Víncula cualquier ticket o issue relacionado con este PR.
### Captura de pantalla (si aplica)Si los cammbios afectan a la interfaz de usuario, por favor adjunta capturas de pantalla.
### Checklist- [] He seguido las convenciones de estilo de código de este repositorio.
- [] He añadido pruebas unitarias para los cmabios que lo requieren.
- [] Todos los tests pasan correctamente.
- [] He documentado adecuadamente los cambios en el código.
### Otros comentariosAgrega cualquier otra información relevante aquí.
Gracias por tu aporte
Genial! Gracias
Hola
Les comparto el markdown de pull_request_template.md, el cual obtuve usando ChatGPT
### **Descripción del Cambio**
Por favor, proporciona una descripción detallada de los cambios realizados en este PR.
### **¿Cuál es el contexto de este cambio?**
Explica el contexto y por qué se necesita este cambio.
### **¿Cómo se probaron estos cambios?**
Describe los pasos que tomaste para probar que los cambios funcionan como se espera.
### **¿Existen tickets relacionados?**
Vincula cualquier ticket o issue relacionado con este PR.
### **Capturas de Pantalla (si aplica)**
Si los cambios afectan a la interfaz de usuario, por favor adjunta capturas de pantalla.
### **Checklist**
- [ ] He seguido las convenciones de estilo de código de este repositorio.
- [ ] He añadido pruebas unitarias para los cambios que lo requieren.
- [ ] Todos los tests pasan correctamente.
- [ ] He documentado adecuadamente los cambios en el código.
### **Otros Comentarios**
Agrega cualquier otra información relevante aquí.
Gracias por tu aporte
Muchisimas Gracias!
Me molesta demasiado que diga que hay algo en los recursos de la clase y no esté. Y ha pasado en la mayoría de las clases en las que lo ha dicho.
Eso sería un buen Issue
aiiññ siii ... y quita mucho tiempo andar buscando y a veces no se encuentran ni en comentarios u.u
Y recuerden amigos... siempre trabajen con su propia rama 😉
Estoy repitiendo el curso, pero Fredy tenia una clase de Alias, muy buenas para acortar comandos, no se si lo han visto muy innecesario y no querian hacer el curso muy largo, pero siento que es importante.
Si un comando de Git es muy largo y lo usas frecuentemente, puedes crear un alias para acortarlo.
🔹 1. Crear un alias en Git
Ejecuta este comando para definir un alias en la configuración global de Git:
Hola tengo un error que no me deja avanzar y no se como solucionarlo```js
pip3 install -r requirements.txt
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Pythonpackage,create a virtual environment using python3 -m venv path/to/venv.Then use path/to/venv/bin/python and path/to/venv/bin/pip.Makesure you have python3-full installed.If you wish to install a non-Debian packaged Python application,it may be easiest to use pipx install xyz, which will manage a
virtual environment for you.Make sure you have pipx installed.See/usr/share/doc/python3.12/README.venvfor more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
````pip3 install -r requirements.txt`
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.12/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
Hola, pudiste solucionarlo?
Tengo el mismo error
Es necesario crear un entorno virtual de python
primero se debe instalar el paquete para realizar entornos virtuales en python:
sudo apt install python3.12-venv
Una vez instalado, el paquete se crea un entorno virtual de python donde instalaremos los paquetes específicos del cada proyecto, para el caso del ejemplo requirements.txt
python3 -m venv .venv
Luego se activa el entorno virtual
source .venv/bin/activate
y por último en el entorno virtual creado se instalan los paquetes requeridos
python3 -m pip install -r requirements.txt
No quiero instalar una cantidad de cosas que no voy a usar así que hice todo desde codespaces y quedó melo.
Tambien se puede crear un subdirectorio PULL_REQUEST_TEMPLATE en la carpeta .github para contener múltiples plantillas de pull requests. El archivo .github/PULL_REQUEST_TEMPLATE.md se aplica por defecto y los archivos dentro de .github/PULL_REQUEST_TEMPLATE/ aparecen como opciones adicionales.
Documentación: Creating a pull request template for your repository - GitHub Docs
El pull request es fundamental en el desarrollo colaborativo porque permite revisar, discutir y aprobar cambios antes de integrarlos al código principal. Fomenta la comunicación entre los miembros del equipo y ayuda a evitar conflictos en el código, asegurando que las contribuciones sean de alta calidad. Además, facilita la documentación de cambios y la trazabilidad del proyecto en GitHub.
acá les paso el texto
## Descripción del Cambio Por favor, proporciona una descripción detallada de los cambios realizados en este PR.
### ¿Cuál es el contexto de este cambio? Explica el contexto y por qué se necesita este cambio. ### ¿Cómo se probaron estos cambios? Describe los pasos que tomaste para probar que los cambios funcionan como se espera.
### ¿Existen tickets relacionados? Vincula cualquier ticket o issue relacionado con este PR.
### Capturas de Pantalla (si aplica) Si los cambios afectan a la interfaz de usuario, por favor adjunta capturas de pantalla.
### Checklist
- [ ] He seguido las convenciones de estilo de código de este repositorio.
- [ ] He añadido pruebas unitarias para los cambios que lo requieren.
- [ ] Todos los tests pasan correctamente.
- [ ] He documentado adecuadamente los cambios en el código.
### Otros Comentarios Agrega cualquier otra información relevante aquí.
Hola estaba intentando ejecutar este código me daba error
uvicorn app:app --reload
Intenten este código a mi me funciono
python3 -m uvicorn app:app --reload
Por si no tienen instalado python
sudo apt install python3-pip
Que buen video, Gracias Profesor, Gracias Platzi.
No pude desde la terminal (uso Bash y PowerShell), pero si pude desde la terminal de VsCode.
Con tan solo 3 simples pasos:
"Ejecutar archivo de python en terminal"
desde la terminal de VsCode fui a la carpeta de API
cd API
uvicorn app:app --reload
Clase 37
El comando:
pip3 install -r requirements.txt
Me dío el error:
Command 'pip3' not found, but can be installed with:
sudo apt install python3-pip
Ejecute el comando que me pidío:
sudo apt install python3-pip
Volví a intentar el codigo pip3 install -r requirements.txt y ahora si se instalo pero al intentar levantar el servidor me salío el error:
Command 'uvicorn' not found, but can be installed with:
sudo apt install uvicorn
Ejecute el comando:
sudo apt install uvicorn
Volví a intentar levantar el servidor y ahora si funciono:
uvicorn app:app –reload
Espero le sirva a alguien
Aquí esta la API que menciona
En mi caso tuve que crear nuevamente un entorno de python.
Me dirigo al repositorio principal de miCuartoRepo en la linea de comandos y creo el entorno
python3 -m venv env_cuarto_repo
source env_cuarto_repo/bin/activate
Luego puedo proseguir con las indicaciones y me dirijo al directorio API y uso el comando
python3 -m pip install -r requirements.txt
link adicional de referencia
docs.python.org/3/library/venv.html
Tambien hay una clase del cursos de python que habla específicamente de esto, pero en windows. Solo se omite lo de los script. La asignación de nombre al entorno y luego la activación es la misma.
creacion-de-entornos-virtuales-en-window
Muy buena clase para ver cómo se conectan ramas, pull requests y plantillas dentro de un flujo real de desarrollo, desde levantar una API hasta documentar los cambios. Me parece clave el mensaje de nunca trabajar directo en main y usar PR bien estructurados para mezclar código, mejorar la revisión en equipo y mantener el proyecto saludable a largo plazo.
🧭 Integración de Git y GitHub en un Proyecto Real
💡 Objetivo General
🧑💻 Facilitar la colaboración en equipo y la gestión de versiones de código.
🔄 Git y GitHub permiten mantener un flujo de trabajo ordenado, seguro y transparente.
🪣 1. Inicio del Proyecto: Crear y Clonar un Repositorio
🚀 Pasos esenciales
1️⃣ Crear un repositorio en GitHub
2️⃣ Añadir un archivo README.md
3️⃣ Clonarlo en tu equipo
4️⃣ Abrirlo en VS Code o tu editor preferido
📁 Estructura recomendada
mkdir .github
touch .github/
✨ El directorio .github guarda plantillas y configuraciones colaborativas.
💡 Consejo: Añade una plantilla para pull requests y estandariza el proceso de colaboración.
🌿 2. Ramas y Commits: Mantén tu Código Organizado
🪴 Por qué usar ramas:
Evitas romper el código principal (main).
Separas tareas o funciones por rama.
Facilitas las revisiones y pruebas.
🧭 Flujo básico de trabajo
git checkout -b mi-nueva-rama ← Crea una nueva rama
git add . ← Prepara los cambios
git commit -m "Implementación de nueva API" ← Registra los cambios
🧩 Tips visuales
🔹 Usa nombres descriptivos → feature/login-api
🔹 Cada commit = un paso claro del desarrollo
🔹 No acumules muchos cambios en un solo commit
🐍 3. Desarrollo y Prueba de una API en Python
🏗️ Estructura sugerida
📂 api/
┣ 📄 app.py → Código principal
┗ 📄 requirements.txt → Dependencias
⚙️ Instala dependencias
pip3 install -r requirements.txt
🚀 Ejecuta la API
uvicorn app:app --reload
✅ Esto lanza tu servidor y te permite probar los endpoints.
🔁 4. Subir Cambios y Crear un Pull Request
📤 Sube tu trabajo
git push -u origin mi-nueva-rama
📝 Crea el Pull Request en GitHub
Abre tu repositorio.
Selecciona tu rama.
Usa la plantilla pull-request-template.md.
Pide revisión antes de fusionar con main.
💬 Los pull requests fomentan la comunicación y la revisión de código.
🧩 5. Consejos Clave para un Buen Flujo
🛡️ Protege la rama main:
Nunca desarrolles directamente sobre ella.
🧱 Usa plantillas:
Para issues y pull requests, mejora la claridad del equipo.
🤝 Promueve la revisión colaborativa:
Ayuda a detectar errores y a compartir conocimiento.