Von Gast (nicht überprüft) , 29 April 2026

Übersicht

git am [--3way] [--abort] [--continue] [--skip] <mbox>...

Beschreibung

Der git am-Befehl wendet Patches aus einer Mailbox-Datei an — der Art, die von git format-patch erzeugt oder durch das Mailen eines Diffs generiert wird. Anders als git apply, das nur den Diff-Inhalt anwendet, erstellt git am jeden Patch als Commit neu und bewahrt den Autor, das Datum, die Nachricht und andere in der E-Mail eingebettete Metadaten.

Das ist die Grundlage des E-Mail-basierten Beitrags-Workflows, der vom Linux-Kernel und anderen Projekten verwendet wird: Maintainer empfangen Patches per E-Mail, speichern sie in einer Mailbox und wenden sie mit git am an. Das Ergebnis ist genau dieselbe Reihe von Commits, die der Autor erstellt hat.

Im täglichen Einsatz integriert sich git am eng mit Shell-Aliasen, Editor-Plugins und Continuous Integration. Power-User fügen oft Aliase hinzu, die Flags kombinieren, die sie immer übergeben, oder wickeln den Befehl in Skripte, die Teamkonventionen durchsetzen. Die Ausgabeformatierung kann über Git-Config angepasst werden — Pretty-Formate, Farbschemata und Pager-Verhalten sind alle einstellbar. Wenn etwas schiefgeht, ist der erste Diagnoseschritt üblicherweise, den Befehl erneut mit GIT_TRACE=1 in der Umgebung auszuführen, was die zugrunde liegenden Plumbing-Aufrufe offenlegt. Für ungewöhnliche Situationen öffnet die --help-Ausgabe (git am --help) die vollständige Manpage mit Details zu jeder Option, einschließlich solcher, die in alltäglichen Workflows selten verwendet werden, aber für Debugging oder Skripting im großen Maßstab essentiell sind.

Zu verstehen, wie git am mit dem Rest von Gits Datenmodell interagiert — der Objektdatenbank, dem Index, Refs und dem Working Tree — zahlt sich aus. Jeder Befehl operiert auf einer Teilmenge dieser Stücke, und zu wissen, welche er berührt, hilft Ergebnisse vorherzusagen und sich von Fehlern zu erholen. Das Lesen der offiziellen Git-Dokumentation neben praktischer Übung in einem Wegwerf-Repository ist der schnellste Weg, die Nuancen zu verinnerlichen. Die meisten Produktionsprobleme mit Git rühren von einer von drei Ursachen: überraschendem Standardverhalten, partiellen Netzwerkoperationen oder dem Umschreiben bereits geteilter Historie. Ein funktionierendes mentales Modell der Nebenwirkungen von git am hilft, alle drei zu vermeiden.

Häufige Optionen

OptionBeschreibung
--3wayFällt auf Three-Way-Merge zurück, falls der Patch nicht sauber anwendbar ist.
--abortBricht ein laufendes am ab.
--continue / --resolvedSetzt nach Konfliktauflösung fort.
--skipÜberspringt den aktuellen Patch.
-s, --signoffFügt Signed-off-by-Trailer hinzu.
-kÜbergibt -k an mailinfo (Betreff behalten).
--whitespace=<action>Behandlung von Whitespace-Fehlern.

Beispiele

git am patches/*.patch
    # Eine Reihe von format-patch-Ausgaben anwenden

    git am --3way --signoff incoming.mbox
    # Three-Way-Merge-Fallback, Sign-Off-Zeilen hinzufügen

    git am --abort
    # Nach hoffnungslosem Konflikt abbrechen

    curl -L https://lore.kernel.org/.../t.mbox.gz | gunzip | git am --3way
    # Patches von einer öffentlichen Liste herunterladen und anwenden

Häufige Fehler

Vergessen, --3way zu verwenden, wenn Patches gegen eine leicht andere Basis erzeugt wurden, führt oft zu Fehlern, die --3way behandeln würde. Nach dem Lösen eines Konflikts führen Sie git am --continue aus, NICHT git commit. Einfaches commit erzeugt einen fehlerhaften Zustand.

Verwandte Befehle

git apply, git format-patch, git send-email, git mailinfo