LogoLogo
  • Git e GitHub para Humanos
  • Sumário
  • 1. Antes de Começar
    • 1.1 Este livro é para você?
    • 1.2 A razão por trás deste livro
    • 1.3 Visão geral
    • 1.4 Sobre o GitHub
    • 1.5 Sobre a Cumbuca Dev
    • 1.6 O maravilhoso mundo do open source
    • 1.7 Mapa do livro
    • 1.8 Glossário: capítulo 1
  • 2. Fundamentos de Controle de Versão e Git
    • 2.1 Introdução a sistemas de controle de versão
      • 2.1.1 Sistemas de controle de versão centralizados
      • 2.1.2 Sistemas de controle de versão distribuídos
    • 2.2 Introdução ao Git
    • 2.3 Conceitos Fundamentais do Git
      • 2.3.1 Repositório
      • 2.3.2 Commit
      • 2.3.3 Branch
      • 2.3.4 Merge
    • 2.4 Instalando o Git
      • 2.4.1 Instalando no Linux
      • 2.4.2 Instalando no macOS
      • 2.4.3 Instalando no Windows
    • 2.5 Interagindo com o Git
    • 2.6 O Comando Git
    • 2.7 Inicializando de um Repositório Local
    • 2.8 Configurando de um Repositório Local
    • 2.9 Links Úteis: Capítulo 2
    • 2.10 Glossário: Capítulo 2
  • 3. Operações Locais Básicas no Git
    • 3.1 Explorando Operações Locais do Git
    • 3.2 Salvando Alterações Localmente
      • 3.2.1 Adicionando Arquivos ao Controle de Versão via `git add`
      • 3.2.2 Verificando o Estado do Repositório via `git status`
      • 3.2.3 Criando Commits via `git commit`
      • 3.2.4 Visualizando o Histórico do Repositório via `git log`
      • 3.2.5 Comparando Alterações via `git diff`
      • 3.2.6 Unindo os Pontos
      • 3.2.7 Exemplo Prático
    • 3.3 Trabalhando com Branches Localmente
      • 3.3.1 Gerenciando Branches via `git branch`
      • 3.3.2 Alternando Entre Branches via `git switch`
      • 3.3.3 Mesclando Branches via `git merge`
        • 3.3.3.1 Resolvendo Conflitos de Merge
      • 3.3.4 Unindo os Pontos
      • 3.3.5 Exemplo Prático
    • 3.4 Links Úteis: Capítulo 3
    • 3.5 Glossário: Capítulo 3
  • 4. Ajuste de Mudanças Locais no Git
    • 4.1 Desfazendo Alterações Localmente
      • 4.1.1 Desfazendo Alterações Antes do Commit
      • 4.1.2 Desfazendo Commits
      • 4.1.3 Alterando o Último Commit via `git commit --amend`
      • 4.1.4 Unindo os Pontos
      • 4.1.5 Exemplos Práticos
    • 4.2 Ignorando e Removendo Arquivos do Rastreamento Local
      • 4.2.1 Ignorando Arquivos do Rastreamento Utilizando o arquivo .gitignore
      • 4.2.2 Removendo Arquivos do Rastreamento via `git rm`
    • 4.3 Links Úteis: Capítulo 4
    • 4.4 Glossário: Capítulo 4
  • 5. Introdução ao GitHub
    • 5.1 Qual a diferença entre Git e GitHub?
    • 5.2 Grandes Projetos Abertos no GitHub
    • 5.3 Recursos do GitHub
    • 5.4 Idioma Suportado no GitHub
    • 5.5 Contas no GitHub
      • 5.5.1 Conta Pessoal
      • 5.5.2 Conta de Organização
      • 5.5.3 Conta Corporativa
      • 5.5.4 Unindo os Pontos
    • 5.6 Planos do GitHub
    • 5.7 Criando uma Conta Pessoal no GitHub
    • 5.8 Explorando a Interface do GitHub
      • 5.8.1 Página Principal (Home)
      • 5.8.2 Página de Notificações (Notifications)
      • 5.8.3 Página de Configurações (Settings)
    • 5.9 Links Úteis: Capítulo 5
    • 5.10 Glossário: Capítulo 5
  • 6. Repositórios no GitHub
    • 6.1 O quê é um Repositório no GitHub?
    • 6.2 Criando um Repositório no GitHub
    • 6.3 Página Principal de um Repositório: Aba Code
      • 6.3.1 Editando um Arquivo em um Repositório no GitHub
      • 6.3.2 Explorando o Histórico de Commits de um Repositório no GitHub
      • 6.3.3 Editando Detalhes de um Repositório no GitHub
      • 6.3.4 Explorando um Repositório Ativo em Uso
    • 6.4 Página de Configurações de um Repositório: Aba Settings
      • 6.4.1 Gerenciando Configurações Gerais de um Repositório no GitHub: Menu General
      • 6.4.2 Gerenciando Configurações de Colaboração de um Repositório no GitHub: Menu Collaborators
      • 6.4.3 Explorando Configurações de um Repositório no GitHub na Prática
    • 6.5 Links Úteis: Capítulo 6
    • 6.6 Glossário: Capítulo 6
  • 7. Documentação de Projetos
    • 7.1 O quê é Documentação de Projeto?
    • 7.2 Explorando a Linguagem de Marcação Markdown
    • 7.3 Criando uma Página de Apresentação no GitHub
    • 7.4 Links Úteis: Capítulo 7
    • 7.5 Glossário: Capítulo 7
  • 8. Issues no GitHub
    • 8.1 O quê é GitHub Issues?
    • 8.2 Criando uma Issue no GitHub
    • 8.3 Explorando a Página de uma Issue no GitHub
    • 8.4 Atribuindo uma Issue no GitHub
    • 8.5 Categorizando Issues de um Repositório através de Labels no GitHub
      • 8.5.1 Gerenciando Labels de um Repositório no GitHub
    • 8.6 Página de Issues de um Repositório no GitHub: Aba Issues
    • 8.7 Explorando Issues no Mundo Real
    • 8.8 Links Úteis: Capítulo 8
    • 8.9 Glossário: Capítulo 8
  • 9. Git Remoto
    • 9.1 Explorando Operações Remotas do Git
    • 9.2 Interagindo com o Repositório Remoto Central no Git
      • 9.2.1 Clonando um Repositório Remoto via `git clone`
      • 9.2.2 Buscar Atualizações de um Repositório Remoto via `git fetch`
      • 9.2.3 Enviando Mudanças Locais para o Repositório Remoto via `git push`
      • 9.2.4 Sincronizando o Repositório Local com o Remoto via `git pull`
      • 9.2.5 Unindo os Pontos
      • 9.2.6 Exemplo
    • 9.3 Interagindo com o Repositório Remoto hello-world
      • 9.3.1 Conectando-se ao GitHub via SSH
      • 9.3.2 Clonando o Repositório hello-world
      • 9.3.3 Alterando hello-world Localmente
        • 9.3.3.1 Editor de Código
        • 9.3.3.2 Editando README.md
        • 9.3.3.3 Salvando Alterações no Controle de Versão Local
      • 9.3.4 Enviando Alterações para o Repositório Remoto
    • 9.4 Links Úteis: Capítulo 9
    • 9.5 Glossário: Capítulo 9
  • 10. Pull Requests no GitHub
    • 10.1 O quê é um Pull Requests no GitHub?
    • 10.2 Entendendo as Propriedades de um Pull Request no GitHub
      • 10.2.1 Branches de Origem e de Destino de um Pull Request
      • 10.2.2 Título de um Pull Request
      • 10.2.3 Descrição de um Pull Request
      • 10.2.4 Modificações de um Pull Request
      • 10.2.5 Pessoas Revisoras de um Pull Request
      • 10.2.6 Labels de um Pull Request
    • 10.3 Criando um Pull Request no GitHub
    • 10.4 Página de um Pull Request no GitHub
      • 10.4.1 Aba Conversation
      • 10.4.2 Aba Commits
      • 10.4.3 Aba Checks
      • 10.4.4 Aba Files Changed
    • 10.5 Página de Pull Requests de um Repositório no GitHub: Aba Pull Requests
    • 10.6 Recebendo Revisões em um Pull Request no GitHub
      • 10.6.1 Boas Práticas
      • 10.6.2 Exemplo Prático
        • 10.6.2.1 Adicionando Conta Colaboradora
        • 10.6.2.2 Solicitando Revisão de Pull Request
        • 10.6.2.3 Lidando com o Feedback
    • 10.7 Mesclando um Pull Request no GitHub
      • 10.7.1 Exemplo Prático
    • 10.8 Atualizando um Repositório Local Após Mesclagem
    • 10.9 Explorando Pull Requests no Mundo Real
    • 10.10 Links Úteis: Capítulo 10
    • 10.11 Glossário: Capítulo 10
  • 11. Fluxo de Trabalho
    • 11.1 Fork no GitHub
      • Fork
    • 11.2 Forks e Pull Requests
      • 11.2.1 Criando um Fork no GitHub
      • 11.2.2 Clonando um Fork
      • 11.2.3 Realizando Alterações Localmente
      • 11.2.4 Enviando Alterações Locais para o Fork Remoto
      • 11.2.5 Criando um Pull Request a partir de um Fork no GitHub
      • 11.2.6 Sincronizando um Fork no GitHub
      • 11.2.7 Revisão, Mesclagem e Atualizações Pós-mesclagem
    • 11.3 Fluxo de Trabalho
  • 11.4 Links Úteis - Capítulo 11
  • 11.5 Glossário - Capítulo 11
  • 12. O Caminho Continua
    • 12.1 Conhecendo Ferramentas Adicionais
      • 12.1.1 Indicação: Jogo Oh My Git
    • 12.2 Explorando Projetos Open Source
    • 12.3 Crescendo e Colaborando em Comunidades
    • 12.4 Desafio: GitCaos 🔥
    • 12.5 Links Úteis - Capítulo 12
    • 12.6 Glossário Completo: Git e GitHub para Humanos
Fornecido por GitBook
Nesta página
  • Tipos de Mesclagem
  • 1. Merge Commit (Padrão)
  • 2. Squash and Merge
  • 3. Rebase and Merge
  • Qual Devo Utilizar?
  • Como Mesclar um PR no GitHub

Isto foi útil?

Editar no GitHub
Exportar como PDF
  1. 10. Pull Requests no GitHub

10.7 Mesclando um Pull Request no GitHub

Agora que conseguimos a aprovação de todas as pessoas revisoras, é hora de mesclar a nossa sugestão de mudança com o branch principal.

Tipos de Mesclagem

O GitHub oferece três tipos diferentes de mesclagem de um PR. Vamos utilizar um exemplo como base para entender a diferença entre eles e quando usar cada um.

Imagine que temos um site, e a última alteração feita no main foi "Adiciona página 'Sobre Nós'". Há um branch com uma nova feature chamado feature-contato. Nesse branch, foi feito um primeiro commit com a mensagem "Adiciona formulário de contato" e em seguida um segundo commit com a mensagem "Adiciona informação de endereço".

Para melhor visualizar, os logs ficariam assim:

main

git log --oneline
abcd123 Adiciona página 'Sobre Nós'

feature-contato

git log --oneline
6d5c4b3 Adiciona informação de endereço
7f6e5d4 Adiciona formulário de contato

1. Merge Commit (Padrão)

  • Adiciona todos os commits do branch ao branch de destino e cria um commit extra para a mesclagem.

  • Mantém o histórico completo das alterações.

  • Ideal para manter rastreabilidade quando várias pessoas contribuem.

Após o Merge Commit

git log --oneline
9a8b7c3 Merge branch 'feature-contato' into main
6d5c4b3 Adiciona informação de endereço
7f6e5d4 Adiciona formulário de contato
abcd123 Adiciona página 'Sobre Nós'

Prós e Contras

  • ✅ Mantém o histórico completo de commits.

  • ✅ Facilita a rastreabilidade de mudanças.

  • ❌ Pode deixar o histórico mais poluído com commits de merge.

2. Squash and Merge

  • Junta todos os commits do PR em um único commit antes de mesclar.

  • Deixa o histórico mais limpo, sem múltiplos commits pequenos.

Após Squash and Merge

git log --oneline
8f7e6d5 Adiciona página de contato com formulário e endereço
abcd123 Adiciona página 'Sobre Nós'

Prós e Contras

  • ✅ Mantém o histórico mais organizado.

  • ✅ Remove commits pequenos e irrelevantes.

  • ❌ Perde a granularidade dos commits originais.

3. Rebase and Merge

  • Aplica os commits do PR diretamente no branch de destino, sem um commit de mesclagem.

  • O histórico fica linear, sem "commits extras" de mesclagem.

Após Rebase and Merge

git log --oneline
6d5c4b3 Adiciona informação de endereço
7f6e5d4 Adiciona formulário de contato
abcd123 Adiciona página 'Sobre Nós'

Prós e Contras

  • ✅ Mantém um histórico limpo e linear.

  • ✅ Evita commits de merge desnecessários.

  • ❌ Pode causar problemas em branches compartilhados.

Atenção: Não use Rebase and Merge em branches compartilhados!

Um branch compartilhado é aquele onde várias pessoas colaboram ao mesmo tempo.

Imagine que você e sua colega estão trabalhando no branch feature-contato.

  1. Você faz um commit e envia para o repositório remoto (push)

  2. Sua colega faz um pull para trabalhar na mesma feature

  3. Você decide fazer um rebase no branch antes de mesclar

O rebase altera o histórico do branch, reescrevendo os commits. Agora, o histórico do repositório remoto está diferente do que sua colega baixou. Quando ela tentar enviar suas alterações (push), o Git pode rejeitar, pois os commits que ela tem localmente não correspondem mais aos do repositório remoto.

  • ✅ Rebase é seguro para branches que só você está usando.

  • 🚨 Em branches compartilhados, prefira Merge Commit ou Squash and Merge.

Qual Devo Utilizar?

Se você é iniciante, o mais recomendado é utilizar Merge Commit, pois ele mantém o histórico completo e facilita o rastreamento das mudanças.

Caso esteja contribuindo para um projeto já estabelecido, siga as diretrizes definidas por ele. Alguns projetos podem preferir Squash and Merge para manter um histórico mais limpo ou Rebase and Merge para um histórico linear.

Como Mesclar um PR no GitHub

  1. Vá até o repositório no GitHub.

  2. Acesse a aba Pull Requests.

  3. Escolha o PR que deseja mesclar.

  4. Revise o código e verifique se passou nos testes.

  5. Clique no botão verde Merge pull request na seção Verificação de Status da 10.4.1 Aba Conversation.

  6. Escolha o método de mesclagem.

  7. Confirme clicando em Confirm merge.


Para mais informações sobre mesclagem de PRs, acessa a Documentação Oficial do GitHub.

Depois de entender como mesclar um PR no GitHub de forma simples e eficiente, vamos seguir adiante e explorar o passo a passo para mesclar o PR do nosso exemplo no repositório hello-world.

Anterior10.6.2.3 Lidando com o FeedbackPróximo10.7.1 Exemplo Prático

Atualizado há 2 meses

Isto foi útil?