Como Criar Pull Requests a partir do seu Terminal
  Pull requests (PRs) são fundamentais para o desenvolvimento colaborativo no GitHub, permitindo revisão de código e discussão antes que as alterações sejam mescladas. Este guia explica como criar e gerenciar PRs de forma eficiente usando o terminal, principalmente usando o GitHub CLI (gh).
Principais Aprendizados
- Aprenda a usar o GitHub CLI para gerenciamento de PRs
 - Domine fluxos de trabalho de PRs baseados em terminal
 - Siga as melhores práticas para criação de PRs
 - Lide com cenários comuns de solução de problemas
 - Implemente recursos avançados de PR
 
Pré-requisitos
Antes de começar, certifique-se de ter:
- Git instalado e configurado (Download Git)
 - GitHub CLI (
gh) instalado (Documentação do GitHub CLI) - Uma conta GitHub (Cadastre-se)
 - Acesso ao repositório e permissões necessárias
 - Conhecimento básico de comandos Git
 
Configurando o GitHub CLI
Instalação
Escolha seu sistema operacional:
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
Autenticação
Após a instalação, autentique-se com o GitHub:
gh auth login
Siga as instruções interativas para completar a autenticação. Você pode escolher entre os protocolos HTTPS ou SSH.
Criando um Pull Request
1. Prepare Seu Branch
# Atualize seu branch main local
git checkout main
git pull origin main
# Crie e mude para um novo branch de feature
git checkout -b feature/nome-da-sua-feature
2. Faça e Confirme Alterações
# Prepare todas as alterações
git add .
# Crie um commit com uma mensagem descritiva
git commit -m ""feat: implementar nova funcionalidade
- Adicionada nova funcionalidade
- Documentação atualizada
- Problemas relacionados corrigidos""
3. Envie as Alterações
# Envie seu branch para o GitHub
git push -u origin feature/nome-da-sua-feature
4. Crie o Pull Request
Usando GitHub CLI (Recomendado)
Criação Básica de PR
gh pr create --title ""Feature: Implementar Nova Funcionalidade"" --body ""Descrição das alterações""
Criação Avançada de PR
gh pr create 
  --title ""Feature: Implementar Nova Funcionalidade"" 
  --body ""## Alterações
- Implementada nova funcionalidade
- Testes atualizados
- Documentação adicionada
## Problemas Relacionados
Fecha #123"" 
  --base main 
  --head feature/nome-da-sua-feature 
  --reviewer usuario1,usuario2 
  --label ""enhancement,documentation"" 
  --milestone ""v1.0.0"" 
  --project ""Quadro de Projeto""
5. Gerenciando Seu PR
# Visualizar PR no navegador
gh pr view --web
# Verificar status do PR
gh pr status
# Listar todos os PRs
gh pr list
# Adicionar revisores ao PR existente
gh pr edit --add-reviewer usuario1,usuario2
# Adicionar etiquetas
gh pr edit --add-label ""priority,bug""
Melhores Práticas
- Nomenclatura de Branch
- Use prefixos descritivos: 
feature/,fix/,docs/,refactor/ - Inclua o número da issue, se aplicável: 
feature/123-autenticacao-usuario 
 - Use prefixos descritivos: 
 - Mensagens de Commit
- Siga os commits convencionais (Convenção)
 - Inclua escopo e descrição
 - Referencie issues: ""corrige #123""
 
 - Descrição do PR
- Use modelos se disponíveis
 - Inclua contexto e justificativa
 - Liste issues relacionadas e dependências
 - Adicione capturas de tela para alterações de UI
 
 - Revisão de Código
- Responda ao feedback prontamente
 - Atualize a descrição do PR conforme necessário
 - Resolva conflitos rapidamente
 
 
Solução de Problemas
Problemas Comuns e Soluções
- 
Falha na Autenticação
gh auth login --web - 
Push Rejeitado
git pull origin main git rebase main git push -f origin feature/nome-da-sua-feature - 
Conflitos de Merge
git checkout main git pull git checkout feature/nome-da-sua-feature git rebase main # Resolva os conflitos e continue git rebase --continue 
Recursos Avançados
PRs de Rascunho
gh pr create --draft
Modelos de PR
Crie .github/pull_request_template.md em seu repositório para descrições padronizadas de PR.
Automatizando a Criação de PR
Você pode criar aliases de shell ou scripts para padrões comuns de PR:
# Adicione ao .bashrc ou .zshrc
alias pr-create='gh pr create --template ""template.md"" --label ""needs-review""'
Lembre-se de manter seu GitHub CLI atualizado para os recursos mais recentes:
# Atualizar GitHub CLI
gh update
Perguntas Frequentes
[TOGGLE question=""O que faço se a autenticação falhar?""
answer=""Use gh auth login --web para autenticar através do seu navegador em vez da interface do terminal.""]
[TOGGLE question=""Como lidar com pushes rejeitados?""
answer=""1. Puxe as alterações mais recentes: git pull origin mainn2. Rebase seu branch: git rebase mainn3. Force push: git push -f origin feature/nome-da-sua-feature""]
[TOGGLE question=""Como resolvo conflitos de merge?""
answer=""1. Checkout para main: git checkout mainn2. Puxe as alterações mais recentes: git pulln3. Mude para seu branch: git checkout feature/nome-da-sua-featuren4. Rebase: git rebase mainn5. Resolva conflitos e continue: git rebase --continue""]
[TOGGLE question=""Posso criar PRs de rascunho?""
answer=""Sim, use a flag --draft: gh pr create --draft""]
[TOGGLE question=""Como uso modelos de PR?""
answer=""Crie um arquivo .github/pull_request_template.md em seu repositório para descrições padronizadas de PR.""]
Conclusão
Dominar a abordagem baseada em terminal para criar e gerenciar pull requests pode melhorar significativamente seu fluxo de trabalho de desenvolvimento. O GitHub CLI (gh) fornece um poderoso conjunto de ferramentas que agilizam o processo de PR, da criação à mesclagem. Seguindo as melhores práticas descritas neste guia e utilizando os recursos do GitHub CLI, você pode:
- Economizar tempo evitando alternar entre terminal e navegador
 - Manter uma qualidade consistente de PR através de modelos e convenções
 - Lidar com desafios comuns de PR de forma eficiente
 - Automatizar tarefas repetitivas relacionadas a PR