Patching
git apply
Description
It is used to apply a patch to files and/or to the index. Patches are typically created using the git diff
or git format-patch
commands and can represent changes between different states of the repository. This command allows to take these patches and apply them to your working directory or staging area.
Usage
Options
--check
: Check if the patch can be applied cleanly without actually applying it.
--index
: Apply the patch to the index (staging area) as well as the working directory.
--reverse
: Apply the patch in reverse (undo the changes).
--whitespace=<action>
: Handle whitespace errors; <action>
can be nowarn
, warn
, fix
, or error
--reject
: Leave the rejected hunks in corresponding .rej
files instead of applying them partially.
--apply
: Explicitly apply the patch (default action).
What It Does
Applies Patches: Reads a patch file and applies the changes it contains to the working directory or index.
Supports Various Options: Allows for customization of how the patch is applied, such as applying it in reverse or with fuzz tolerance.
Common Use Cases
Example Workflow
Example Output
When running git apply patchfile.patch.
This indicates that the patch could not be applied cleanly to file.c
at line 10.
git am
Description
It is used to apply patches from email files. It stands for "apply mailbox" and is typically used to apply patches generated by git format-patch
, which creates email-like formatted patches. This command is particularly useful for applying a series of patches sent via email or saved in mailbox format.
Usage
Options
-3
or --3way
: Use 3-way merge if the patch fails to apply cleanly.
-s
or --signoff
: Add a Signed-off-by line to the commit message.
-skip
: Skip the current patch and continue with the next one
--abort
: Restore the original branch and abort the patch application
--continue
: Continue applying patches after resolving conflicts.
-q
or --quiet
: Suppress all output.
--interactive
: Allow user to interactively review and edit the patch before applying it.
What It Does
Applies Patches: Reads one or more email formatted patches and applies them sequentially to the current branch.
Commits the Changes: Each patch is applied and committed, retaining the original commit message, author information, and timestamp.
Common Use Cases
Example Workflow
Example Output
When running git am patchfile.mbox
If a patch fails to apply cleanly
Last updated
Was this helpful?