git rerere

Patches e reescrita

Reutiliza resoluções de conflito gravadas


O recurso 'git rerere' (reuse recorded resolution) lembra como você resolveu um conflito e aplica automaticamente a mesma resolução na próxima vez que o conflito idêntico aparecer — ao refazer um rebase, refazer o merge de um branch ou repetir um merge. Ative com rerere.enabled; o git então grava conflitos e resoluções sozinho. Você ainda confere o resultado e faz git add.

Sinopse

git rerere [clear | forget <path> | diff | status | remaining | gc]
[ ] opcional| ou<arg> valor a substituir... repetível--flag opção

Exemplos

Ativar

git config --global rerere.enabled true

Daqui em diante conflitos e resoluções são lembrados.


Conflitos sendo gravados

git rerere status

Arquivos cujo conflito está sendo gravado.


Esquecer uma resolução ruim

git rerere forget app.js

Gravá-la de novo na próxima vez.

Exemplos de fluxos de trabalho

1
git config rerere.enabled true

Uma vez

2
git merge main … resolve … git reset --hard HEAD~1

Merges de teste ensinam o rerere

3
git merge main

O merge real reutiliza suas respostas

Solução de problemas

Um conflito foi resolvido errado

Causa: Uma resolução ruim foi gravada

git rerere forget <file>, resolva de novo, faça commit

Dicas e armadilhas

Boas práticas

  • ✓Ative globalmente se você faz rebase com frequência.
  • ✓Sempre revise os arquivos que o rerere resolveu antes do git add.

Erros comuns

  • ✗Gravar uma resolução errada e vê-la reaplicada em silêncio — confira os arquivos depois dos merges e use rerere forget.

Perguntas frequentes

A:

Não por padrão: configure rerere.autoUpdate como true para preparar automaticamente os arquivos resolvidos.