Back

Cómo Crear Pull Requests desde tu Terminal

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:

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

  1. Nomenclatura de Ramas
    • Usa prefijos descriptivos: feature/, fix/, docs/, refactor/
    • Incluye número de issue si aplica: feature/123-autenticacion-usuario
  2. Mensajes de Commit
    • Sigue los commits convencionales (Convención)
    • Incluye alcance y descripción
    • Referencia issues: ""fixes #123""
  3. 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
  4. 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

  1. Fallo de Autenticación

    gh auth login --web
    
  2. Push Rechazado

    git pull origin main
    git rebase main
    git push -f origin feature/nombre-de-tu-funcionalidad
    
  3. 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

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers