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 main
n2. Rebase tu rama: git rebase main
n3. 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 main
n2. Descarga los últimos cambios: git pull
n3. Cambia a tu rama: git checkout feature/nombre-de-tu-funcionalidad
n4. Rebase: git rebase main
n5. 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