git-apply(1)
============

NAME
----
git-apply - Apply patch on a git index file and a work tree


SYNOPSIS
--------
'git-apply' [--stat] [--numstat] [--summary] [--check] [--index] [--apply] [--no-add] [--index-info] [-z] [<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.  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.

--index-info::
	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 version of the blob is available locally,
	outputs information about them to the standard output.

-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.

--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 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.

Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by Junio C Hamano

GIT
---
Part of the gitlink:git[7] suite

