Cómo Crear Pull Requests desde tu Terminal
  Los pull requests (PRs) son fundamentales para el desarrollo colaborativo en GitHub, permitiendo la revisión de código y discusión antes de que los cambios sean fusionados. Esta guía explica cómo crear y gestionar PRs de manera eficiente usando la terminal, principalmente utilizando GitHub CLI (gh).
Puntos Clave
- Aprende a usar GitHub CLI para la gestión de PRs
 - Domina los flujos de trabajo de PRs basados en terminal
 - Sigue las mejores prácticas para la creación de PRs
 - Maneja escenarios comunes de solución de problemas
 - Implementa funciones avanzadas de PRs
 
Requisitos Previos
Antes de comenzar, asegúrate de tener:
- Git instalado y configurado (Descargar Git)
 - GitHub CLI (
gh) instalado (Documentación de GitHub CLI) - Una cuenta de GitHub (Registrarse)
 - Acceso al repositorio y permisos necesarios
 - Conocimiento básico de comandos Git
 
Configuración de GitHub CLI
Instalación
Elige tu sistema operativo:
macOS
# Usando Homebrew
brew install gh
# Usando MacPorts
sudo port install gh
Linux
# Debian/Ubuntu
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo ""deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main"" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh
# Fedora
sudo dnf install gh
# Arch Linux
sudo pacman -S github-cli
Windows
# Usando Scoop
scoop install gh
# Usando Winget
winget install --id GitHub.cli
Autenticación
Después de la instalación, autentícate con GitHub:
gh auth login
Sigue las indicaciones interactivas para completar la autenticación. Puedes elegir entre los protocolos HTTPS o SSH.
Creando un Pull Request
1. Prepara Tu Rama
# Actualiza tu rama main local
git checkout main
git pull origin main
# Crea y cambia a una nueva rama de funcionalidad
git checkout -b feature/nombre-de-tu-funcionalidad
2. Realiza y Confirma Cambios
# Prepara todos los cambios
git add .
# Crea un commit con un mensaje descriptivo
git commit -m ""feat: implementar nueva funcionalidad
- Añadida nueva funcionalidad
- Actualizada documentación
- Corregidos problemas relacionados""
3. Envía Cambios
# Envía tu rama a GitHub
git push -u origin feature/nombre-de-tu-funcionalidad
4. Crea el Pull Request
Usando GitHub CLI (Recomendado)
Creación Básica de PR
gh pr create --title ""Funcionalidad: Implementar Nueva Funcionalidad"" --body ""Descripción de los cambios""
Creación Avanzada de PR
gh pr create 
  --title ""Funcionalidad: Implementar Nueva Funcionalidad"" 
  --body ""## Cambios
- Implementada nueva funcionalidad
- Actualizadas pruebas
- Añadida documentación
## Problemas Relacionados
Cierra #123"" 
  --base main 
  --head feature/nombre-de-tu-funcionalidad 
  --reviewer username1,username2 
  --label ""enhancement,documentation"" 
  --milestone ""v1.0.0"" 
  --project ""Tablero de Proyecto""
5. Gestionando Tu PR
# Ver PR en el navegador
gh pr view --web
# Comprobar estado del PR
gh pr status
# Listar todos los PRs
gh pr list
# Añadir revisores a un PR existente
gh pr edit --add-reviewer username1,username2
# Añadir etiquetas
gh pr edit --add-label ""priority,bug""
Mejores Prácticas
- Nomenclatura de Ramas
- Usa prefijos descriptivos: 
feature/,fix/,docs/,refactor/ - Incluye número de issue si aplica: 
feature/123-autenticacion-usuario 
 - Usa prefijos descriptivos: 
 - Mensajes de Commit
- Sigue los commits convencionales (Convención)
 - Incluye alcance y descripción
 - Referencia issues: ""fixes #123""
 
 - Descripción del PR
- Usa plantillas si están disponibles
 - Incluye contexto y razonamiento
 - Enumera issues relacionados y dependencias
 - Añade capturas de pantalla para cambios de UI
 
 - Revisión de Código
- Responde a los comentarios con prontitud
 - Actualiza la descripción del PR según sea necesario
 - Resuelve conflictos rápidamente
 
 
Solución de Problemas
Problemas Comunes y Soluciones
- 
Fallo de Autenticación
gh auth login --web - 
Push Rechazado
git pull origin main git rebase main git push -f origin feature/nombre-de-tu-funcionalidad - 
Conflictos de Fusión
git checkout main git pull git checkout feature/nombre-de-tu-funcionalidad git rebase main # Resuelve conflictos y continúa git rebase --continue 
Funciones Avanzadas
PRs en Borrador
gh pr create --draft
Plantillas de PR
Crea .github/pull_request_template.md en tu repositorio para descripciones estandarizadas de PR.
Automatizando la Creación de PR
Puedes crear alias de shell o scripts para patrones comunes de PR:
# Añadir a .bashrc o .zshrc
alias pr-create='gh pr create --template ""template.md"" --label ""needs-review""'
Recuerda mantener tu GitHub CLI actualizado para las últimas funciones:
# Actualizar GitHub CLI
gh update
Preguntas Frecuentes
[TOGGLE question=""¿Qué hago si falla la autenticación?""
answer=""Usa gh auth login --web para autenticarte a través de tu navegador en lugar de la interfaz de terminal.""]
[TOGGLE question=""¿Cómo manejo los pushes rechazados?""
answer=""1. Descarga los últimos cambios: git pull origin mainn2. Rebase tu rama: git rebase mainn3. Force push: git push -f origin feature/nombre-de-tu-funcionalidad""]
[TOGGLE question=""¿Cómo resuelvo conflictos de fusión?""
answer=""1. Cambia a main: git checkout mainn2. Descarga los últimos cambios: git pulln3. Cambia a tu rama: git checkout feature/nombre-de-tu-funcionalidadn4. Rebase: git rebase mainn5. Resuelve conflictos y continúa: git rebase --continue""]
[TOGGLE question=""¿Puedo crear PRs en borrador?""
answer=""Sí, usa la bandera --draft: gh pr create --draft""]
[TOGGLE question=""¿Cómo uso plantillas de PR?""
answer=""Crea un archivo .github/pull_request_template.md en tu repositorio para descripciones estandarizadas de PR.""]
Conclusión
Dominar el enfoque basado en terminal para crear y gestionar pull requests puede mejorar significativamente tu flujo de trabajo de desarrollo. GitHub CLI (gh) proporciona un potente conjunto de herramientas que agilizan el proceso de PR, desde la creación hasta la fusión. Siguiendo las mejores prácticas descritas en esta guía y utilizando las funciones de GitHub CLI, puedes:
- Ahorrar tiempo evitando cambios de contexto entre terminal y navegador
 - Mantener una calidad consistente de PR mediante plantillas y convenciones
 - Manejar desafíos comunes de PR de manera eficiente
 - Automatizar tareas repetitivas relacionadas con PR