GitHub: resolução de conflitos
O curso trata de conflitos de merge numa branch que está num pull request aberto e em revisão. Mostra o editor de conflitos web do GitHub e os limites dele, e o caminho local para os conflitos que o editor não resolve. Explica por que um force-push depois de um rebase deixa os comentários de revisão desatualizados, e por que um conserto com merge os mantém atuais. Trata também de baixar e revisar o PR com conflito de outra pessoa, de prevenir conflitos com git rerere e branches pequenas, e de dois cenários no db/seeds.rb deste repositório.
O que você vai aprender
- ✓Usar o editor Resolve conflicts do GitHub e entender o que o Commit merge faz
- ✓Resolver localmente o conflito de um PR e enviá-lo com git push ou --force-with-lease
- ✓Por que um force-push depois de rebase deixa comentários de revisão desatualizados
- ✓Baixar o PR de outra pessoa com pull/<número>/head ou gh pr checkout
- ✓Quando quem revisa deve resolver um conflito e quando deixar um comentário
- ✓Diminuir conflitos com git rerere, proteção de branch, PRs pequenos e rascunhos
O escopo deste curso: conflitos dentro de um pull request aberto
"Git merging" mostrou o que é um conflito: os dois lados mudam as mesmas linhas de jeitos diferentes, e o Git se recusa a adivinhar. Também mostrou como ler e resolver um, editando os três marcadores (<<<<<<< HEAD, =======, >>>>>>> nome-da-branch) à mão até sumirem. "Pull requests" mostrou depois a…
Ler a aula completa grátis →Currículo
7 aulasO escopo deste curso: conflitos dentro de um pull request aberto
Define o escopo: conflitos numa branch de um pull request aberto e revisado quando a main muda por baixo.
O editor de conflitos web do GitHub
Mostra o editor de conflitos no navegador, o limite a mudanças de linha simples e o commit de merge enviado.
Quando resolver localmente é a única opção
Reproduz localmente o conflito de um PR, resolve e envia de volta com git push ou --force-with-lease.
O que um force-push faz numa revisão em andamento
Explica por que o force-push de um rebase desatualiza comentários e como merges e commits novos evitam isso.
Revisando um pull request conflitado de outra pessoa
Baixa o PR de um colega com pull/<número>/head ou gh pr checkout e discute se quem revisa deve resolver.
Mantendo PRs sem conflito: rerere e branches pequenas
Apresenta o git rerere para reaproveitar resoluções, além de proteção de branch, PRs pequenos e rascunhos.
Juntando tudo: um conflito no db/seeds.rb deste repositório
Aplica o editor web, o caminho local, o rerere e as ferramentas de revisão a dois conflitos no db/seeds.rb.