git am
Patches e reescrita
Aplica patches de arquivos de e-mail como commits
O comando 'git am' (apply mailbox) pega arquivos de patch criados por git format-patch e transforma cada um num commit, mantendo o autor, a data e a mensagem originais. É o lado que recebe contribuições por e-mail. Se um patch não se aplicar mais, git am para; corrija e execute git am --continue, ou desista com git am --abort.
Sinopse
git am [--signoff] [--3way] [<mbox> | <patch-file>...]
git am (--continue | --skip | --abort)[ ] opcional| ou<arg> valor a substituir... repetível--flag opção
Opções
Escolhendo a opção certa
Aplicar patches
Arquivos ou commits?
| Comando | Cria um commit |
|---|---|
git apply fix.patch | Não — só arquivos |
git am fix.patch | Sim — com o autor original |
Exemplos
Aplicar patches
git am 0001-*.patchCada arquivo vira um commit.
Adicionar sua assinatura
git am -s 0001-fix.patchAcrescenta Signed-off-by com seu nome.
Parar uma aplicação que falhou
git am --abortTudo volta a como estava.
Exemplos de fluxos de trabalho
1
git switch -c review mainUm branch para testá-los
2
git am ~/patches/*.patchAplicá-los
3
git log --oneline main..Conferir o que chegou
Solução de problemas
error: patch failed … patch does not apply
Causa: Seus arquivos diferem do contexto do patch
git am --abort, depois tente de novo com --3way, ou peça um patch com rebase
Dicas e armadilhas
Boas práticas
- ✓Aplique os patches num branch novo, não direto em main.
Erros comuns
- ✗Usar git apply quando você quer commits — apply só altera arquivos.
- ✗Deixar um git am com falha pela metade: termine com --continue ou --abort.
Perguntas frequentes
A:
Significa «apply mailbox»: lê patches no formato de e-mail (mbox).