git merge-tree

Patchs et réécriture

Calculer une fusion sans toucher au répertoire de travail


La commande 'git merge-tree --write-tree' effectue une fusion entièrement en mémoire : elle affiche l’identifiant de l’arbre fusionné et, en cas de conflits, les fichiers en conflit et les messages — sans changer vos fichiers, la zone de préparation ni aucune branche. Elle sort avec 1 en cas de conflit, ce qui la rend idéale pour les scripts et serveurs qui doivent savoir si deux branches fusionneraient proprement.

Synopsis

git merge-tree --write-tree [--name-only] <branch1> <branch2>
[ ] facultatif| ou<arg> valeur à remplacer... répétable--flag option

Exemples

Tester une fusion

git merge-tree --write-tree main feature

Propre : affiche un identifiant d’arbre ; conflits : code de sortie 1.


Seulement les fichiers en conflit

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

Noms de fichiers au lieu des étapes.

Exemples de workflows

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

Le code de sortie 1 signifie des conflits

Dépannage

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

Cause : Les anciennes versions de Git n’ont que le mode trivial

Mettez Git à jour (--write-tree demande 2.38+)

Astuces et pièges

Bonnes pratiques

  • ✓Utilisez le code de sortie dans les scripts : 0 propre, 1 conflits.

Erreurs fréquentes

  • ✗S’attendre à un commit de fusion — merge-tree ne fait que calculer le résultat.

FAQ

A:

L’arbre que la fusion produirait ; vous pourriez le committer avec git commit-tree.