git merge-tree

Parches y reescritura

Calcula una fusión sin tocar el directorio de trabajo


El comando 'git merge-tree --write-tree' hace una fusión totalmente en memoria: imprime el id del árbol fusionado y, si hay conflictos, los archivos en conflicto y los mensajes — sin cambiar tus archivos, el área de preparación ni ninguna rama. Sale con 1 si hay conflictos, lo que lo hace ideal para scripts y servidores que necesitan saber si dos ramas se fusionarían limpiamente.

Sinopsis

git merge-tree --write-tree [--name-only] <branch1> <branch2>
[ ] opcional| o<arg> valor a sustituir... repetible--flag opción

Ejemplos

Probar una fusión

git merge-tree --write-tree main feature

Limpia: imprime un id de árbol; conflictos: código de salida 1.


Solo los archivos en conflicto

git merge-tree --write-tree --name-only main feature

Nombres de archivo en lugar de etapas.

Ejemplos de flujos de trabajo

1
git merge-tree --write-tree main feature || echo "conflicts"

El código de salida 1 significa conflictos

Solución de problemas

usage: git merge-tree … (old mode output)

Causa: Las versiones antiguas de Git solo tienen el modo trivial

Actualiza Git (--write-tree necesita 2.38+)

Consejos y trampas

Buenas prácticas

  • ✓Usa el código de salida en scripts: 0 limpio, 1 conflictos.

Errores comunes

  • ✗Esperar un commit de fusión — merge-tree solo calcula el resultado.

Preguntas frecuentes

A:

El árbol que produciría la fusión; podrías confirmarlo con git commit-tree.