Mauricio González
Sebastián Loría Ramírez
Gracias!!!
Ywikeyrun Miguel zalabata
esta repetida la linea?
Trabajar con pull requests y ramas en Git es como un partido de ping pong: tú envías tu rama, alguien la revisa, se fusiona a main y el ciclo vuelve a empezar. Aquí verás cómo aprobar un pull request, crear una rama nueva, sincronizar cambios y resolver un conflicto real en Visual Studio Code, todo siguiendo una rutina diaria que te evita dolores de cabeza.
¿Cómo revisar y aprobar un pull request en GitHub?
Antes de escribir una sola línea de código, lo primero es revisar si hay pull requests pendientes del equipo. Es parte de la rutina sana de cualquier persona que colabora en un repositorio compartido.
En el ejemplo, hay un pull request creado por Miguel que agrega métodos para los mejores superhéroes de Marvel. Al entrar a la sección de cambios, lo verde indica lo que añadió y lo rojo lo que removió o modificó. Tras confirmar que el archivo está completo y que la plantilla del pull request fue diligenciada correctamente, se aprueba y se hace merge a main [1:30].
¿Qué hago después de aprobar un pull request? Eliminas la rama asociada. Si ya fue fusionada a main, esa rama dejó de tener propósito y mantenerla solo genera ruido en el repositorio.
¿Por qué borrar la rama después del merge?
Mantener ramas muertas confunde al equipo y ensucia la vista del repositorio. Una vez que el código vive en main, esa rama cumplió su función. Borrarla es responsabilidad compartida entre quien aprueba y quien creó el pull request.
¿Cómo crear una rama nueva y hacer commit con Git?
Con main limpio y actualizado, llega tu turno. En este caso, toca agregar un método llamado Courses Platzi que muestre cursos como Docker, Bash y Linux dentro del archivo app.py.
El flujo desde la terminal es directo y siempre el mismo:
git branch para confirmar en qué rama estás parado.git status para ver qué archivos fueron modificados.git add para agregar los cambios al staging.git commit -m "Platzi method added" para registrar el cambio con un mensaje claro.git push -u origin amin/tarea16 para subir la rama nueva al remoto [4:45].El flag -u en el push establece la rama remota como upstream, lo que te permite usar git push y git pull sin argumentos en los próximos comandos.
¿Qué pasa si main tiene cambios nuevos antes de tu push?
Aquí está el detalle que muchas personas pasan por alto. Si main recibió cambios mientras tú trabajabas en tu rama, lo ideal es traer esos cambios antes de subir los tuyos. De lo contrario, el conflicto se resolverá directamente en GitHub y eso suele ser más incómodo.
La secuencia recomendada es: cambiar a main con git switch main, traer las actualizaciones con git pull, volver a tu rama con git switch amin/tarea16 y finalmente fusionar con git merge main.
¿Cómo resolver un conflicto de merge en Visual Studio Code?
Al correr git merge main, Git te avisa si hay conflictos. En este caso, ambos métodos —el de superhéroes de Marvel y el de cursos de Platzi— ocupan el mismo espacio en app.py y Git no sabe cuál conservar.
Visual Studio Code ofrece la opción Resolve in Editor, que te muestra los dos bloques en conflicto lado a lado. Puedes elegir quedarte con uno, con otro o aceptar ambos cambios. En este escenario, lo correcto es aceptar el merge completo: ni quieres borrar el trabajo de Miguel ni perder el tuyo [7:20].
¿Qué es un conflicto de merge? Es cuando dos ramas modifican la misma línea de un archivo y Git no puede decidir cuál versión conservar. Tú resuelves manualmente cuál bloque queda.
Una vez resuelto, haces commit de la fusión. Desde VS Code puedes usar el botón Sync Changes, que ejecuta un pull y push en un solo paso.
¿Cómo cierras el ciclo del pull request?
Con los cambios ya en GitHub, creas un nuevo pull request desde tu rama hacia main. Es importante revisar que el destino del merge sea el correcto: en este caso, main recibiendo los cambios de amin/tarea16.
Cuando Miguel aprueba y hace merge, el estado del pull request cambia a merged y él borra tu rama, devolviendo el favor. El archivo app.py en main ahora contiene tanto los superhéroes de Marvel como los cursos de Platzi.
¿Cuál es la rutina ideal para evitar conflictos en Git?
La práctica vuelve este flujo casi automático. Al principio se siente burocrático, pero con el tiempo te das cuenta de que sigues una secuencia limpia que protege el trabajo de todo el equipo.
La rutina diaria recomendada tiene tres pasos:
git pull.Siguiendo esta secuencia, es casi imposible toparte con un conflicto como el que se generó intencionalmente en el ejercicio. Y si llegara a ocurrir, ya tienes las herramientas para resolverlo sin pánico.
¿Qué parte del flujo te genera más dudas, el merge desde la terminal o la resolución de conflictos en VS Code? Cuéntalo en los comentarios.
Mauricio González
Sebastián Loría Ramírez
Gracias!!!
Ywikeyrun Miguel zalabata
esta repetida la linea?
Fernando Emilio Díaz López
Para no tener estos problemas, recomiendo ampliamente tener esta rutina en tu workflow
Ana Rotela Cabrera
Recomendaciones
Samuel Steven Bernal Martínez
Recordatorio: Si tienen una versión muy reciente de ubuntu, o en general les da problemas el pip, lo recomendable es crear un entorno virtual, para que los paquetes de python no entren en conflicto con los archivos del sistema.
python3 -m venv venv
Alexis Dorado Muñoz
Gracias por tu aporte
Samuel Steven Bernal Martínez
Entre todos aprendemos!
Samuel Soto Hoyos
Les recomiendo este recurso para aprender un poco más sobre las prácticas de ingeniería de Google (especificamente sobre Code Review) espero les sirva
[Google Engineering Practices Documentation](https://github.com/google/eng-practices)
Mario Alexander Vargas Celis
Revisión y Fusión de Pull Requests en GitHub 🚀
Los Pull Requests (PRs) son esenciales en el flujo de trabajo colaborativo de GitHub, ya que permiten la revisión, validación y fusión de cambios en un proyecto. Un buen proceso de revisión y fusión mejora la calidad del código y previene errores antes de integrarlo en la rama principal (main o develop).
📌 Revisión de Pull Requests
La revisión de un PR implica analizar el código, detectar errores y sugerir mejoras antes de fusionarlo.
🔹 Pasos para revisar un Pull Request en GitHub: 1️⃣ Abrir el PR en GitHub desde la pestaña "Pull Requests". 2️⃣ Leer la descripción del PR para entender los cambios. 3️⃣ Revisar los archivos modificados en la pestaña "Files changed". 4️⃣ Comentar líneas de código si hay sugerencias o problemas. 5️⃣ Ejecutar pruebas (si es posible) para verificar que el código funciona correctamente. 6️⃣ Aprobar o solicitar cambios:
📌 Ejemplo de revisión usando GitHub CLI:
# Ver lista de PRs abiertos gh pr list
# Ver detalles de un PR específico gh pr view <PR_ID>
# Dejar un comentario en un PR gh pr comment <PR_ID> --body "Este código se ve bien, pero considera mejorar X línea."
📌 Fusión de Pull Requests
Una vez aprobado el PR, el siguiente paso es fusionarlo en la rama principal.
🔹 Opciones de fusión en GitHub:
1️⃣ Merge commit (Create a merge commit): Mantiene el historial completo del PR.
2️⃣ Squash and merge (Squash commits): Une todos los commits en uno solo para un historial más limpio.
3️⃣ Rebase and merge (Rebase commits): Aplica los commits sobre la rama de destino sin crear un commit de fusión.
📌 Ejemplo de fusión desde la CLI:
# Fusionar un PR gh pr merge <PR_ID> --merge # Merge commit gh pr merge <PR_ID> --squash # Squash and merge gh pr merge <PR_ID> --rebase # Rebase and merge
📌 Buenas Prácticas para Revisar y Fusionar PRs
✅ Hacer revisiones detalladas para evitar errores en producción. ✅ Usar linters y pruebas automáticas para validar el código antes de fusionarlo. ✅ Comentar de manera clara y constructiva para mejorar la colaboración. ✅ Seleccionar la estrategia de fusión adecuada según el flujo de trabajo del equipo.
💡 "Una revisión efectiva y una fusión bien gestionada garantizan código limpio, estable y fácil de mantener." 🚀
Alexis Dorado Muñoz
Gracias por tu aporte
Dussan Freire
Muy útil ver el flujo completo de creación, revisión y fusión de pull requests, incluyendo cómo manejar conflictos antes de llegar a main. Me quedo con la idea de que revisar PR a diario, alinear ramas y eliminar las que ya se fusionaron es clave para mantener un historial limpio y un equipo mejor coordinado.
Ana Rotela Cabrera
Tu plantilla está larga. Espero Chayanne sí me lo apruebé 😂
Samuel Steven Bernal Martínez
Una vez que se hace merge de una rama en GitHub, es buena práctica eliminar la rama tanto en GitHub como en tu entorno local (VSCode). Esto ayuda a mantener tu repositorio limpio y evita confusiones.
En VSCode, puedes eliminar la rama local con el comando:
git branch -d nombre-de-la-rama
Si la rama no ha sido mergeada, usa:
git branch -D nombre-de-la-rama
Asegúrate siempre de revisar que no necesitas más la rama antes de eliminarla. Esto te ayudará a mantener un flujo de trabajo más organizado.
Toni Alexander Ramírez Abrego
La creación y gestión de branches y pull requests en GitHub facilita el desarrollo colaborativo, permitiendo trabajar en cambios de forma organizada antes de integrarlos al proyecto principal. ✨👍
Jhon Alexander Mosquera Vanegas
El conflicto de esta clase no nació de un error técnico sino del orden de las tareas, y eso enseña más que el procedimiento para resolverlo. El autor omitió a propósito traer los cambios de main antes de subir su rama, y por eso el archivo app.py chocó con el de su compañero. La rutina que propone evita el problema: primero revisar los pull requests pendientes, luego jalar los cambios a la rama principal y solo después trabajar en una rama aparte. Es decir, ordenar el día reduce más conflictos que cualquier herramienta de resolución, y conviene adoptarlo como hábito de equipo.
Julian Camilo Sanchez Sosa
No termino de comprender cuándo usar git merge y cuándo git rebase. Al final los dos mantienen los cambios
Raul Fernandez
Lo más común es ejecutar el comando git merge para unir el trabajo de una rama, que puede ser de un repositorio remoto, con tu rama actual. También podrías usar el comando git rebase si es que prefieres una historia más limpia. La diferencia es que con el comando de merge se crea un nuevo "commit de fusión" que une las dos ramas.
Es honesto: muestra exactamente cuándo y cómo se juntaron los caminos. Es el registro histórico de lo que pasó.
El comando rebase es más como un "reescritor de historia". Toma tus cambios y los pone encima de los cambios más recientes de la rama a la que le haces rebase, como si hubieras empezado a trabajar justo después de que la otra persona terminó su trabajo. El resultado es una línea recta, mucho más limpia y fácil de leer. Sin embargo, hay un pequeño detalle: Al hacer esto último estás reescribiendo la historia, cambias los identificadores de tus commits. Si compartes esa rama con otros, les vas a causar un dolor de cabeza enorme.
Si te fijas, el comando `git pull`es, en esencia, un atajo. Por defecto, ejecuta el comando git fetch seguido del comando git merge . Como el comando git pull genera un merge, Git necesita crear un merge commit. Por defecto, genera uno automático que suele decir algo asi como: Merge branch 'main' of [URL-del-repositorio].
José Lancheros Ayora
Clase 38
Diego Mauricio Zuluaga Rodríguez
Dime el proceso correcto y completo
Diego Mauricio, el proceso es un baile de sincronización. Empiezas actualizando tu main local (git pull), creas tu rama de trabajo, haces tus cambios y commits. Antes de subir, traes los cambios de main a tu rama para resolver conflictos localmente. Solo entonces haces el push y abres el PR en GitHub para revisión.
¿Por qué crees que es vital resolver los conflictos en tu rama local antes de siquiera intentar abrir el Pull Request?
Miguel Lozano
Si se sienten seguros de los cambios realizados a archivos que ya estan trackeados, pueden hacer este comando que agrega y hace commit al mismo tiempo:
git commit -am "" a -> Busca todos los archivos que ya están bajo seguimiento (tracked) y que han sido modificados, y ponlos en el stage automáticamente. No agrega archivos nuevos (untracked). Si acabas de crear un archivo, -a lo ignorará por completo. m -> Permite escribir el mensaje del commit directamente en la terminal entre comillas, evitando que se abra el editor de texto (como Vim o Nano).
Gabriel Obregón
🧭Gestión Eficaz de Pull Requests
💡 Concepto Clave
Los pull requests son solicitudes de revisión y fusión de código que garantizan calidad, orden y trabajo colaborativo dentro de un proyecto.
🔍 1. Revisión Diaria de Pull Requests
🕓 Objetivo: mantener el flujo de trabajo al día y detectar errores antes de fusionar. 👁️🗨️ Revisar siempre:
💬 Ejemplo: revisión del PR donde Miguel añadió métodos sobre superhéroes de Marvel.
🧾 2. Revisión y Aprobación de Cambios
🧠 Importancia:
🪄 Después de aprobar:
⚙️ 3. Agregar Nuevos Métodos a una API
📘 Ejemplo: método “Cursos Platzi”.
🪜 Pasos:
💾 4. Realizar Commits y Subir Cambios
📦 Comandos esenciales:
git add .
git commit -m "método de platzi agregado"
git push
🗣️ Usa mensajes descriptivos y claros en los commits.
⚔️ 5. Manejo de Conflictos de Código
🧭 Antes de subir cambios:
🔧 Procedimiento:
🧰 Herramienta recomendada: Visual Studio Code.
🧩 6. Resolver Conflictos en Visual Studio Code
🪄 Opciones del editor:
📍 Luego:
🚀 7. Después de Resolver y Fusionar Cambios
🔁 Este ciclo —crear, revisar, aprobar y fusionar— mantiene el proyecto fluido y limpio.
SANTIAGO ALBERTO BOLIVAR CARDENAS.
Que buen video, Gracias Profesor, Gracias Platzi.
José Alberto Ortiz Vargas
Por que algunos desarrolladores siempre trabajan todos los cambios en una rama con su nombre y cuando hacen un feature, envian este a main desde su rama pero sin nunca pasar por un PR?
Amin Espinoza
ProfesorPorque les gusta el caos!!!! Ningún proyecto que se jacte de ser profesional puede dejar abierta la posibilidad de unificar a main de manera directa, esa es una falta a las mejores prácticas posibles.
Oscar Hincapié
En la mitad del video encontré una duda que tenia hace tiempo, me falta ver cómo se hace en otros editores
@app.get("/cursosPlatzi")def get_cursos(): cursos = ["Docker", "Bash", "Linux", "Inglés","Python" , "Javascript", "Azure", "DevOps"] return cursos ```@app.get("/cursosPlatzi")def get\_cursos(): cursos *=* \["Docker", "Bash", "Linux", "Inglés","Python" , "Javascript", "Azure", "DevOps"] *return* cursos Aquí el método de la clase para que lo copien :)