git merge-tree
Patches & Umschreiben
Berechnet einen Merge, ohne das Arbeitsverzeichnis anzufassen
Der Befehl 'git merge-tree --write-tree' führt einen Merge vollständig im Speicher durch: er gibt die ID des gemergten Trees aus und bei Konflikten die betroffenen Dateien und Meldungen — ohne deine Dateien, den Staging-Bereich oder einen Branch zu ändern. Bei Konflikten endet er mit 1, ideal für Skripte und Server, die wissen müssen, ob sich zwei Branches sauber mergen lassen.
Syntax
git merge-tree --write-tree [--name-only] <branch1> <branch2>[ ] optional| oder<arg> Platzhalter... wiederholbar--flag Option
Beispiele
Einen Merge testen
git merge-tree --write-tree main featureSauber: gibt eine Tree-ID aus; Konflikte: Exit-Code 1.
Nur die Dateien mit Konflikten
git merge-tree --write-tree --name-only main featureDateinamen statt Stufen.
Workflow-Beispiele
1
git merge-tree --write-tree main feature || echo "conflicts"Exit-Code 1 bedeutet Konflikte
Fehlerbehebung
usage: git merge-tree … (old mode output)
Ursache: Alte Git-Versionen haben nur den trivialen Modus
Aktualisiere Git (--write-tree braucht 2.38+)
Tipps & Stolperfallen
Best Practices
- ✓Nutze den Exit-Code in Skripten: 0 sauber, 1 Konflikte.
Häufige Fehler
- ✗Einen Merge-Commit erwarten — merge-tree berechnet nur das Ergebnis.
FAQ
A:
Der Tree, den der Merge erzeugen würde; du könntest ihn mit git commit-tree committen.