| git-apply(1) | 
 | ============ | 
 |  | 
 | NAME | 
 | ---- | 
 | git-apply - Apply a patch on a git index file and a working tree | 
 |  | 
 |  | 
 | SYNOPSIS | 
 | -------- | 
 | [verse] | 
 | 'git apply' [--stat] [--numstat] [--summary] [--check] [--index] | 
 | 	  [--apply] [--no-add] [--build-fake-ancestor <file>] [-R | --reverse] | 
 | 	  [--allow-binary-replacement | --binary] [--reject] [-z] | 
 | 	  [-pNUM] [-CNUM] [--inaccurate-eof] [--recount] [--cached] | 
 | 	  [--whitespace=<nowarn|warn|fix|error|error-all>] | 
 | 	  [--exclude=PATH] [--directory=<root>] [--verbose] [<patch>...] | 
 |  | 
 | DESCRIPTION | 
 | ----------- | 
 | Reads supplied 'diff' output and applies it on a git index file | 
 | and a work tree. | 
 |  | 
 | OPTIONS | 
 | ------- | 
 | <patch>...:: | 
 | 	The files to read patch from.  '-' can be used to read | 
 | 	from the standard input. | 
 |  | 
 | --stat:: | 
 | 	Instead of applying the patch, output diffstat for the | 
 | 	input.  Turns off "apply". | 
 |  | 
 | --numstat:: | 
 | 	Similar to \--stat, but shows number of added and | 
 | 	deleted lines in decimal notation and pathname without | 
 | 	abbreviation, to make it more machine friendly.  For | 
 | 	binary files, outputs two `-` instead of saying | 
 | 	`0 0`.  Turns off "apply". | 
 |  | 
 | --summary:: | 
 | 	Instead of applying the patch, output a condensed | 
 | 	summary of information obtained from git diff extended | 
 | 	headers, such as creations, renames and mode changes. | 
 | 	Turns off "apply". | 
 |  | 
 | --check:: | 
 | 	Instead of applying the patch, see if the patch is | 
 | 	applicable to the current work tree and/or the index | 
 | 	file and detects errors.  Turns off "apply". | 
 |  | 
 | --index:: | 
 | 	When --check is in effect, or when applying the patch | 
 | 	(which is the default when none of the options that | 
 | 	disables it is in effect), make sure the patch is | 
 | 	applicable to what the current index file records.  If | 
 | 	the file to be patched in the work tree is not | 
 | 	up-to-date, it is flagged as an error.  This flag also | 
 | 	causes the index file to be updated. | 
 |  | 
 | --cached:: | 
 | 	Apply a patch without touching the working tree. Instead, take the | 
 | 	cached data, apply the patch, and store the result in the index, | 
 | 	without using the working tree. This implies '--index'. | 
 |  | 
 | --build-fake-ancestor <file>:: | 
 | 	Newer 'git-diff' output has embedded 'index information' | 
 | 	for each blob to help identify the original version that | 
 | 	the patch applies to.  When this flag is given, and if | 
 | 	the original versions of the blobs is available locally, | 
 | 	builds a temporary index containing those blobs. | 
 | + | 
 | When a pure mode change is encountered (which has no index information), | 
 | the information is read from the current index instead. | 
 |  | 
 | -R:: | 
 | --reverse:: | 
 | 	Apply the patch in reverse. | 
 |  | 
 | --reject:: | 
 | 	For atomicity, 'git-apply' by default fails the whole patch and | 
 | 	does not touch the working tree when some of the hunks | 
 | 	do not apply.  This option makes it apply | 
 | 	the parts of the patch that are applicable, and leave the | 
 | 	rejected hunks in corresponding *.rej files. | 
 |  | 
 | -z:: | 
 | 	When showing the index information, do not munge paths, | 
 | 	but use NUL terminated machine readable format.  Without | 
 | 	this flag, the pathnames output will have TAB, LF, and | 
 | 	backslash characters replaced with `\t`, `\n`, and `\\`, | 
 | 	respectively. | 
 |  | 
 | -p<n>:: | 
 | 	Remove <n> leading slashes from traditional diff paths. The | 
 | 	default is 1. | 
 |  | 
 | -C<n>:: | 
 | 	Ensure at least <n> lines of surrounding context match before | 
 | 	and after each change.  When fewer lines of surrounding | 
 | 	context exist they all must match.  By default no context is | 
 | 	ever ignored. | 
 |  | 
 | --unidiff-zero:: | 
 | 	By default, 'git-apply' expects that the patch being | 
 | 	applied is a unified diff with at least one line of context. | 
 | 	This provides good safety measures, but breaks down when | 
 | 	applying a diff generated with --unified=0. To bypass these | 
 | 	checks use '--unidiff-zero'. | 
 | + | 
 | Note, for the reasons stated above usage of context-free patches are | 
 | discouraged. | 
 |  | 
 | --apply:: | 
 | 	If you use any of the options marked "Turns off | 
 | 	'apply'" above, 'git-apply' reads and outputs the | 
 | 	information you asked without actually applying the | 
 | 	patch.  Give this flag after those flags to also apply | 
 | 	the patch. | 
 |  | 
 | --no-add:: | 
 | 	When applying a patch, ignore additions made by the | 
 | 	patch.  This can be used to extract the common part between | 
 | 	two files by first running 'diff' on them and applying | 
 | 	the result with this option, which would apply the | 
 | 	deletion part but not addition part. | 
 |  | 
 | --allow-binary-replacement:: | 
 | --binary:: | 
 | 	Historically we did not allow binary patch applied | 
 | 	without an explicit permission from the user, and this | 
 | 	flag was the way to do so.  Currently we always allow binary | 
 | 	patch application, so this is a no-op. | 
 |  | 
 | --exclude=<path-pattern>:: | 
 | 	Don't apply changes to files matching the given path pattern. This can | 
 | 	be useful when importing patchsets, where you want to exclude certain | 
 | 	files or directories. | 
 |  | 
 | --whitespace=<action>:: | 
 | 	When applying a patch, detect a new or modified line that has | 
 | 	whitespace errors.  What are considered whitespace errors is | 
 | 	controlled by `core.whitespace` configuration.  By default, | 
 | 	trailing whitespaces (including lines that solely consist of | 
 | 	whitespaces) and a space character that is immediately followed | 
 | 	by a tab character inside the initial indent of the line are | 
 | 	considered whitespace errors. | 
 | + | 
 | By default, the command outputs warning messages but applies the patch. | 
 | When `git-apply is used for statistics and not applying a | 
 | patch, it defaults to `nowarn`. | 
 | + | 
 | You can use different `<action>` to control this | 
 | behavior: | 
 | + | 
 | * `nowarn` turns off the trailing whitespace warning. | 
 | * `warn` outputs warnings for a few such errors, but applies the | 
 |   patch as-is (default). | 
 | * `fix` outputs warnings for a few such errors, and applies the | 
 |   patch after fixing them (`strip` is a synonym --- the tool | 
 |   used to consider only trailing whitespaces as errors, and the | 
 |   fix involved 'stripping' them, but modern gits do more). | 
 | * `error` outputs warnings for a few such errors, and refuses | 
 |   to apply the patch. | 
 | * `error-all` is similar to `error` but shows all errors. | 
 |  | 
 | --inaccurate-eof:: | 
 | 	Under certain circumstances, some versions of 'diff' do not correctly | 
 | 	detect a missing new-line at the end of the file. As a result, patches | 
 | 	created by such 'diff' programs do not record incomplete lines | 
 | 	correctly. This option adds support for applying such patches by | 
 | 	working around this bug. | 
 |  | 
 | -v:: | 
 | --verbose:: | 
 | 	Report progress to stderr. By default, only a message about the | 
 | 	current patch being applied will be printed. This option will cause | 
 | 	additional information to be reported. | 
 |  | 
 | --recount:: | 
 | 	Do not trust the line counts in the hunk headers, but infer them | 
 | 	by inspecting the patch (e.g. after editing the patch without | 
 | 	adjusting the hunk headers appropriately). | 
 |  | 
 | --directory=<root>:: | 
 | 	Prepend <root> to all filenames.  If a "-p" argument was passed, too, | 
 | 	it is applied before prepending the new root. | 
 | + | 
 | For example, a patch that talks about updating `a/git-gui.sh` to `b/git-gui.sh` | 
 | can be applied to the file in the working tree `modules/git-gui/git-gui.sh` by | 
 | running `git apply --directory=modules/git-gui`. | 
 |  | 
 | Configuration | 
 | ------------- | 
 |  | 
 | apply.whitespace:: | 
 | 	When no `--whitespace` flag is given from the command | 
 | 	line, this configuration item is used as the default. | 
 |  | 
 | Submodules | 
 | ---------- | 
 | If the patch contains any changes to submodules then 'git-apply' | 
 | treats these changes as follows. | 
 |  | 
 | If --index is specified (explicitly or implicitly), then the submodule | 
 | commits must match the index exactly for the patch to apply.  If any | 
 | of the submodules are checked-out, then these check-outs are completely | 
 | ignored, i.e., they are not required to be up-to-date or clean and they | 
 | are not updated. | 
 |  | 
 | If --index is not specified, then the submodule commits in the patch | 
 | are ignored and only the absence of presence of the corresponding | 
 | subdirectory is checked and (if possible) updated. | 
 |  | 
 | Author | 
 | ------ | 
 | Written by Linus Torvalds <torvalds@osdl.org> | 
 |  | 
 | Documentation | 
 | -------------- | 
 | Documentation by Junio C Hamano | 
 |  | 
 | GIT | 
 | --- | 
 | Part of the linkgit:git[1] suite |