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 main
n2. Rebase seu branch: git rebase main
n3. 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 main
n2. Puxe as alterações mais recentes: git pull
n3. Mude para seu branch: git checkout feature/nome-da-sua-feature
n4. Rebase: git rebase main
n5. 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