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

Übersicht

git apply [--check] [--index] [--3way] <patch>...

Beschreibung

Der git apply-Befehl wendet einen Unified Diff (eine Patch-Datei) auf den Working Tree, den Index oder beides an. Anders als git am, das einen vollständigen Patch im Mailbox-Format mit Autor- und Nachrichten-Metadaten erwartet, wendet git apply nur den Diff-Inhalt an. Es ist nützlich, um Patches anzuwenden, die per E-Mail, Code-Review-Tools oder erzeugt von git diff empfangen wurden.

Standardmäßig aktualisiert git apply nur den Working Tree. Verwenden Sie --index, um auch die Staging Area zu aktualisieren, und --3way, um auf einen Three-Way-Merge zurückzufallen, wenn der Patch nicht sauber anwendbar ist. Um einen Patch zu verifizieren, ohne ihn anzuwenden, verwenden Sie --check.

Im täglichen Einsatz integriert sich git apply 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 apply --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 apply 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 apply hilft, alle drei zu vermeiden.

Häufige Optionen

OptionBeschreibung
--checkTestet, ob der Patch anwendbar ist, ohne etwas zu modifizieren.
--indexWendet auf Working Tree und Index an.
--cachedWendet nur auf den Index an.
--3wayThree-Way-Merge, falls Kontext nicht passt.
--reverse / -RWendet rückwärts an (uncommit eines Patches).
--whitespace=<action>Behandlung von Whitespace-Fehlern (warn, fix, error).
-p<n>Entfernt n Pfadkomponenten von Dateinamen.

Beispiele

git apply changes.patch
    # Eine Patch-Datei auf den Working Tree anwenden

    git apply --check feature.patch
    # Verifizieren, dass ein Patch sauber anwendbar ist

    git apply --index --3way mr.diff
    # Mit Three-Way-Merge-Fallback anwenden, auch in den Index

    curl -L https://example.com/fix.patch | git apply
    # Einen Patch direkt aus einer URL pipen

Häufige Fehler

Wenn der Patch gegen eine andere Basis erzeugt wurde, schlägt einfaches git apply mit "patch does not apply" fehl. Das Hinzufügen von --3way rettet die Situation oft, indem ein Merge versucht wird. Für Patches mit Commit-Metadaten (Autor, Nachricht) verwenden Sie stattdessen git am, sodass der Commit getreu wiederhergestellt wird.

Verwandte Befehle

git am, git format-patch, git diff, git cherry-pick