git am

Patches & Umschreiben

Wendet Patches aus E-Mail-Dateien als Commits an


Der Befehl 'git am' (apply mailbox) nimmt mit git format-patch erstellte Patch-Dateien und macht aus jeder einen Commit — mit ursprünglichem Autor, Datum und Nachricht. Er ist die Empfängerseite von Beiträgen per E-Mail. Lässt sich ein Patch nicht mehr anwenden, hält git am an; korrigiere und führe git am --continue aus, oder brich mit git am --abort ab.

Syntax

git am [--signoff] [--3way] [<mbox> | <patch-file>...]
git am (--continue | --skip | --abort)
[ ] optional| oder<arg> Platzhalter... wiederholbar--flag Option

Optionen

Klicke auf eine Option, um sie aufzuklappen

Einsteiger (1)

Fügt jedem Commit eine Signed-off-by-Zeile mit deinem Namen hinzu.

Bei BedarfProjekte, die eine Signatur-Kette verlangen

Beispiel

git am -s 0001-fix.patch

Fortgeschritten (1)

Lässt sich ein Patch nicht sauber anwenden, auf einen Drei-Wege-Merge zurückgreifen (kann Konflikte hinterlassen).

EmpfohlenPatches anwenden, die auf einer etwas älteren Basis entstanden

Beispiel

git am -3 0001-fix.patch

Die richtige Option wählen

Patches anwenden

Dateien oder Commits?

BefehlErstellt einen Commit
git apply fix.patchNein — nur Dateien
git am fix.patchJa — mit dem ursprünglichen Autor

Beispiele

Patches anwenden

git am 0001-*.patch

Jede Datei wird zu einem Commit.


Deine Signatur ergänzen

git am -s 0001-fix.patch

Hängt Signed-off-by mit deinem Namen an.


Einen fehlgeschlagenen Lauf stoppen

git am --abort

Alles wie vorher.

Workflow-Beispiele

1
git switch -c review main

Ein Branch zum Testen

2
git am ~/patches/*.patch

Anwenden

3
git log --oneline main..

Prüfen, was angekommen ist

Fehlerbehebung

error: patch failed … patch does not apply

Ursache: Deine Dateien weichen vom Kontext des Patches ab

git am --abort, dann mit --3way erneut versuchen, oder um einen neu gebasten Patch bitten

Tipps & Stolperfallen

Best Practices

  • ✓Wende Patches auf einem frischen Branch an, nicht direkt auf main.

Häufige Fehler

  • ✗git apply nutzen, obwohl du Commits willst — apply ändert nur Dateien.
  • ✗Ein fehlgeschlagenes git am halb fertig lassen: beende es mit --continue oder --abort.

FAQ

A:

Es steht für „apply mailbox": es liest Patches im E-Mail-Format (mbox).