git merge-tree
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>Ejemplos
Probar una fusión
git merge-tree --write-tree main featureLimpia: imprime un id de árbol; conflictos: código de salida 1.
Solo los archivos en conflicto
git merge-tree --write-tree --name-only main featureNombres de archivo en lugar de etapas.
Ejemplos de flujos de trabajo
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
El árbol que produciría la fusión; podrías confirmarlo con git commit-tree.