git merge-tree
Patches e reescrita
Calcula um merge sem tocar o diretório de trabalho
O comando 'git merge-tree --write-tree' faz um merge inteiramente na memória: imprime o id da árvore resultante e, se houver conflitos, os arquivos em conflito e as mensagens — sem alterar seus arquivos, a área de preparação ou qualquer branch. Sai com 1 em caso de conflitos, o que o torna ideal para scripts e servidores que precisam saber se dois branches fariam merge limpo.
Sinopse
git merge-tree --write-tree [--name-only] <branch1> <branch2>[ ] opcional| ou<arg> valor a substituir... repetível--flag opção
Exemplos
Testar um merge
git merge-tree --write-tree main featureLimpo: imprime um id de árvore; conflitos: código de saída 1.
Só os arquivos em conflito
git merge-tree --write-tree --name-only main featureNomes de arquivo em vez de estágios.
Exemplos de fluxos de trabalho
1
git merge-tree --write-tree main feature || echo "conflicts"Código de saída 1 significa conflitos
Solução de problemas
usage: git merge-tree … (old mode output)
Causa: Versões antigas do Git só têm o modo trivial
Atualize o Git (--write-tree exige 2.38+)
Dicas e armadilhas
Boas práticas
- ✓Use o código de saída em scripts: 0 limpo, 1 conflitos.
Erros comuns
- ✗Esperar um commit de merge — merge-tree só calcula o resultado.
Perguntas frequentes
A:
A árvore que o merge produziria; você poderia commitá-la com git commit-tree.