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 feature

Sauber: gibt eine Tree-ID aus; Konflikte: Exit-Code 1.


Nur die Dateien mit Konflikten

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

Dateinamen 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.