<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
<meta name="generator" content="AsciiDoc 8.4.5" /> | |
<title>git-apply(1)</title> | |
<style type="text/css"> | |
/* Debug borders */ | |
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 { | |
/* | |
border: 1px solid red; | |
*/ | |
} | |
body { | |
margin: 1em 5% 1em 5%; | |
} | |
a { | |
color: blue; | |
text-decoration: underline; | |
} | |
a:visited { | |
color: fuchsia; | |
} | |
em { | |
font-style: italic; | |
color: navy; | |
} | |
strong { | |
font-weight: bold; | |
color: #083194; | |
} | |
tt { | |
color: navy; | |
} | |
h1, h2, h3, h4, h5, h6 { | |
color: #527bbd; | |
font-family: sans-serif; | |
margin-top: 1.2em; | |
margin-bottom: 0.5em; | |
line-height: 1.3; | |
} | |
h1, h2, h3 { | |
border-bottom: 2px solid silver; | |
} | |
h2 { | |
padding-top: 0.5em; | |
} | |
h3 { | |
float: left; | |
} | |
h3 + * { | |
clear: left; | |
} | |
div.sectionbody { | |
font-family: serif; | |
margin-left: 0; | |
} | |
hr { | |
border: 1px solid silver; | |
} | |
p { | |
margin-top: 0.5em; | |
margin-bottom: 0.5em; | |
} | |
ul, ol, li > p { | |
margin-top: 0; | |
} | |
pre { | |
padding: 0; | |
margin: 0; | |
} | |
span#author { | |
color: #527bbd; | |
font-family: sans-serif; | |
font-weight: bold; | |
font-size: 1.1em; | |
} | |
span#email { | |
} | |
span#revnumber, span#revdate, span#revremark { | |
font-family: sans-serif; | |
} | |
div#footer { | |
font-family: sans-serif; | |
font-size: small; | |
border-top: 2px solid silver; | |
padding-top: 0.5em; | |
margin-top: 4.0em; | |
} | |
div#footer-text { | |
float: left; | |
padding-bottom: 0.5em; | |
} | |
div#footer-badges { | |
float: right; | |
padding-bottom: 0.5em; | |
} | |
div#preamble { | |
margin-top: 1.5em; | |
margin-bottom: 1.5em; | |
} | |
div.tableblock, div.imageblock, div.exampleblock, div.verseblock, | |
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, | |
div.admonitionblock { | |
margin-top: 1.5em; | |
margin-bottom: 1.5em; | |
} | |
div.admonitionblock { | |
margin-top: 2.5em; | |
margin-bottom: 2.5em; | |
} | |
div.content { /* Block element content. */ | |
padding: 0; | |
} | |
/* Block element titles. */ | |
div.title, caption.title { | |
color: #527bbd; | |
font-family: sans-serif; | |
font-weight: bold; | |
text-align: left; | |
margin-top: 1.0em; | |
margin-bottom: 0.5em; | |
} | |
div.title + * { | |
margin-top: 0; | |
} | |
td div.title:first-child { | |
margin-top: 0.0em; | |
} | |
div.content div.title:first-child { | |
margin-top: 0.0em; | |
} | |
div.content + div.title { | |
margin-top: 0.0em; | |
} | |
div.sidebarblock > div.content { | |
background: #ffffee; | |
border: 1px solid silver; | |
padding: 0.5em; | |
} | |
div.listingblock > div.content { | |
border: 1px solid silver; | |
background: #f4f4f4; | |
padding: 0.5em; | |
} | |
div.quoteblock { | |
padding-left: 2.0em; | |
margin-right: 10%; | |
} | |
div.quoteblock > div.attribution { | |
padding-top: 0.5em; | |
text-align: right; | |
} | |
div.verseblock { | |
padding-left: 2.0em; | |
margin-right: 10%; | |
} | |
div.verseblock > div.content { | |
white-space: pre; | |
} | |
div.verseblock > div.attribution { | |
padding-top: 0.75em; | |
text-align: left; | |
} | |
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */ | |
div.verseblock + div.attribution { | |
text-align: left; | |
} | |
div.admonitionblock .icon { | |
vertical-align: top; | |
font-size: 1.1em; | |
font-weight: bold; | |
text-decoration: underline; | |
color: #527bbd; | |
padding-right: 0.5em; | |
} | |
div.admonitionblock td.content { | |
padding-left: 0.5em; | |
border-left: 2px solid silver; | |
} | |
div.exampleblock > div.content { | |
border-left: 2px solid silver; | |
padding: 0.5em; | |
} | |
div.imageblock div.content { padding-left: 0; } | |
span.image img { border-style: none; } | |
a.image:visited { color: white; } | |
dl { | |
margin-top: 0.8em; | |
margin-bottom: 0.8em; | |
} | |
dt { | |
margin-top: 0.5em; | |
margin-bottom: 0; | |
font-style: normal; | |
color: navy; | |
} | |
dd > *:first-child { | |
margin-top: 0.1em; | |
} | |
ul, ol { | |
list-style-position: outside; | |
} | |
ol.arabic { | |
list-style-type: decimal; | |
} | |
ol.loweralpha { | |
list-style-type: lower-alpha; | |
} | |
ol.upperalpha { | |
list-style-type: upper-alpha; | |
} | |
ol.lowerroman { | |
list-style-type: lower-roman; | |
} | |
ol.upperroman { | |
list-style-type: upper-roman; | |
} | |
div.compact ul, div.compact ol, | |
div.compact p, div.compact p, | |
div.compact div, div.compact div { | |
margin-top: 0.1em; | |
margin-bottom: 0.1em; | |
} | |
div.tableblock > table { | |
border: 3px solid #527bbd; | |
} | |
thead { | |
font-family: sans-serif; | |
font-weight: bold; | |
} | |
tfoot { | |
font-weight: bold; | |
} | |
td > div.verse { | |
white-space: pre; | |
} | |
p.table { | |
margin-top: 0; | |
} | |
/* Because the table frame attribute is overriden by CSS in most browsers. */ | |
div.tableblock > table[frame="void"] { | |
border-style: none; | |
} | |
div.tableblock > table[frame="hsides"] { | |
border-left-style: none; | |
border-right-style: none; | |
} | |
div.tableblock > table[frame="vsides"] { | |
border-top-style: none; | |
border-bottom-style: none; | |
} | |
div.hdlist { | |
margin-top: 0.8em; | |
margin-bottom: 0.8em; | |
} | |
div.hdlist tr { | |
padding-bottom: 15px; | |
} | |
dt.hdlist1.strong, td.hdlist1.strong { | |
font-weight: bold; | |
} | |
td.hdlist1 { | |
vertical-align: top; | |
font-style: normal; | |
padding-right: 0.8em; | |
color: navy; | |
} | |
td.hdlist2 { | |
vertical-align: top; | |
} | |
div.hdlist.compact tr { | |
margin: 0; | |
padding-bottom: 0; | |
} | |
.comment { | |
background: yellow; | |
} | |
@media print { | |
div#footer-badges { display: none; } | |
} | |
div#toctitle { | |
color: #527bbd; | |
font-family: sans-serif; | |
font-size: 1.1em; | |
font-weight: bold; | |
margin-top: 1.0em; | |
margin-bottom: 0.1em; | |
} | |
div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { | |
margin-top: 0; | |
margin-bottom: 0; | |
} | |
div.toclevel2 { | |
margin-left: 2em; | |
font-size: 0.9em; | |
} | |
div.toclevel3 { | |
margin-left: 4em; | |
font-size: 0.9em; | |
} | |
div.toclevel4 { | |
margin-left: 6em; | |
font-size: 0.9em; | |
} | |
/* Overrides for manpage documents */ | |
h1 { | |
padding-top: 0.5em; | |
padding-bottom: 0.5em; | |
border-top: 2px solid silver; | |
border-bottom: 2px solid silver; | |
} | |
h2 { | |
border-style: none; | |
} | |
div.sectionbody { | |
margin-left: 5%; | |
} | |
@media print { | |
div#toc { display: none; } | |
} | |
/* Workarounds for IE6's broken and incomplete CSS2. */ | |
div.sidebar-content { | |
background: #ffffee; | |
border: 1px solid silver; | |
padding: 0.5em; | |
} | |
div.sidebar-title, div.image-title { | |
color: #527bbd; | |
font-family: sans-serif; | |
font-weight: bold; | |
margin-top: 0.0em; | |
margin-bottom: 0.5em; | |
} | |
div.listingblock div.content { | |
border: 1px solid silver; | |
background: #f4f4f4; | |
padding: 0.5em; | |
} | |
div.quoteblock-attribution { | |
padding-top: 0.5em; | |
text-align: right; | |
} | |
div.verseblock-content { | |
white-space: pre; | |
} | |
div.verseblock-attribution { | |
padding-top: 0.75em; | |
text-align: left; | |
} | |
div.exampleblock-content { | |
border-left: 2px solid silver; | |
padding-left: 0.5em; | |
} | |
/* IE6 sets dynamically generated links as visited. */ | |
div#toc a:visited { color: blue; } | |
</style> | |
</head> | |
<body> | |
<div id="header"> | |
<h1> | |
git-apply(1) Manual Page | |
</h1> | |
<h2>NAME</h2> | |
<div class="sectionbody"> | |
<p>git-apply - | |
Apply a patch to files and/or to the index | |
</p> | |
</div> | |
</div> | |
<h2 id="_synopsis">SYNOPSIS</h2> | |
<div class="sectionbody"> | |
<div class="verseblock"> | |
<div class="verseblock-content"><em>git apply</em> [--stat] [--numstat] [--summary] [--check] [--index] | |
[--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse] | |
[--allow-binary-replacement | --binary] [--reject] [-z] | |
[-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached] | |
[--ignore-space-change | --ignore-whitespace ] | |
[--whitespace=(nowarn|warn|fix|error|error-all)] | |
[--exclude=<path>] [--include=<path>] [--directory=<root>] | |
[--verbose] [<patch>…]</div> | |
<div class="verseblock-attribution"> | |
</div></div> | |
</div> | |
<h2 id="_description">DESCRIPTION</h2> | |
<div class="sectionbody"> | |
<div class="paragraph"><p>Reads the supplied diff output (i.e. "a patch") and applies it to files. | |
With the <tt>--index</tt> option the patch is also applied to the index, and | |
with the <tt>--cached</tt> option the patch is only applied to the index. | |
Without these options, the command applies the patch only to files, | |
and does not require them to be in a git repository.</p></div> | |
<div class="paragraph"><p>This command applies the patch but does not create a commit. Use | |
<a href="git-am.html">git-am(1)</a> to create commits from patches generated by | |
<a href="git-format-patch.html">git-format-patch(1)</a> and/or received by email.</p></div> | |
</div> | |
<h2 id="_options">OPTIONS</h2> | |
<div class="sectionbody"> | |
<div class="dlist"><dl> | |
<dt class="hdlist1"> | |
<patch>… | |
</dt> | |
<dd> | |
<p> | |
The files to read the patch from. <em>-</em> can be used to read | |
from the standard input. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--stat | |
</dt> | |
<dd> | |
<p> | |
Instead of applying the patch, output diffstat for the | |
input. Turns off "apply". | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--numstat | |
</dt> | |
<dd> | |
<p> | |
Similar to <tt>--stat</tt>, but shows the number of added and | |
deleted lines in decimal notation and the pathname without | |
abbreviation, to make it more machine friendly. For | |
binary files, outputs two <tt>-</tt> instead of saying | |
<tt>0 0</tt>. Turns off "apply". | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--summary | |
</dt> | |
<dd> | |
<p> | |
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". | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--check | |
</dt> | |
<dd> | |
<p> | |
Instead of applying the patch, see if the patch is | |
applicable to the current working tree and/or the index | |
file and detects errors. Turns off "apply". | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--index | |
</dt> | |
<dd> | |
<p> | |
When <tt>--check</tt> 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 working tree is not | |
up-to-date, it is flagged as an error. This flag also | |
causes the index file to be updated. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--cached | |
</dt> | |
<dd> | |
<p> | |
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 <tt>--index</tt>. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--build-fake-ancestor=<file> | |
</dt> | |
<dd> | |
<p> | |
Newer <em>git diff</em> output has embedded <em>index information</em> | |
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 are available locally, | |
builds a temporary index containing those blobs. | |
</p> | |
<div class="paragraph"><p>When a pure mode change is encountered (which has no index information), | |
the information is read from the current index instead.</p></div> | |
</dd> | |
<dt class="hdlist1"> | |
-R | |
</dt> | |
<dt class="hdlist1"> | |
--reverse | |
</dt> | |
<dd> | |
<p> | |
Apply the patch in reverse. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--reject | |
</dt> | |
<dd> | |
<p> | |
For atomicity, <em>git apply</em> 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. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
-z | |
</dt> | |
<dd> | |
<p> | |
When <tt>--numstat</tt> has been given, do not munge pathnames, | |
but use a NUL-terminated machine-readable format. | |
</p> | |
<div class="paragraph"><p>Without this option, each pathname output will have TAB, LF, double quotes, | |
and backslash characters replaced with <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt>, and <tt>\\</tt>, | |
respectively, and the pathname will be enclosed in double quotes if | |
any of those replacements occurred.</p></div> | |
</dd> | |
<dt class="hdlist1"> | |
-p<n> | |
</dt> | |
<dd> | |
<p> | |
Remove <n> leading slashes from traditional diff paths. The | |
default is 1. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
-C<n> | |
</dt> | |
<dd> | |
<p> | |
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. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--unidiff-zero | |
</dt> | |
<dd> | |
<p> | |
By default, <em>git apply</em> 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 <tt>--unified=0</tt>. To bypass these | |
checks use <tt>--unidiff-zero</tt>. | |
</p> | |
<div class="paragraph"><p>Note, for the reasons stated above usage of context-free patches is | |
discouraged.</p></div> | |
</dd> | |
<dt class="hdlist1"> | |
--apply | |
</dt> | |
<dd> | |
<p> | |
If you use any of the options marked "Turns off | |
<em>apply</em>" above, <em>git apply</em> reads and outputs the | |
requested information without actually applying the | |
patch. Give this flag after those flags to also apply | |
the patch. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--no-add | |
</dt> | |
<dd> | |
<p> | |
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 <em>diff</em> on them and applying | |
the result with this option, which would apply the | |
deletion part but not the addition part. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--allow-binary-replacement | |
</dt> | |
<dt class="hdlist1"> | |
--binary | |
</dt> | |
<dd> | |
<p> | |
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. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--exclude=<path-pattern> | |
</dt> | |
<dd> | |
<p> | |
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. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--include=<path-pattern> | |
</dt> | |
<dd> | |
<p> | |
Apply changes to files matching the given path pattern. This can | |
be useful when importing patchsets, where you want to include certain | |
files or directories. | |
</p> | |
<div class="paragraph"><p>When <tt>--exclude</tt> and <tt>--include</tt> patterns are used, they are examined in the | |
order they appear on the command line, and the first match determines if a | |
patch to each path is used. A patch to a path that does not match any | |
include/exclude pattern is used by default if there is no include pattern | |
on the command line, and ignored if there is any include pattern.</p></div> | |
</dd> | |
<dt class="hdlist1"> | |
--ignore-space-change | |
</dt> | |
<dt class="hdlist1"> | |
--ignore-whitespace | |
</dt> | |
<dd> | |
<p> | |
When applying a patch, ignore changes in whitespace in context | |
lines if necessary. | |
Context lines will preserve their whitespace, and they will not | |
undergo whitespace fixing regardless of the value of the | |
<tt>--whitespace</tt> option. New lines will still be fixed, though. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--whitespace=<action> | |
</dt> | |
<dd> | |
<p> | |
When applying a patch, detect a new or modified line that has | |
whitespace errors. What are considered whitespace errors is | |
controlled by <tt>core.whitespace</tt> 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. | |
</p> | |
<div class="paragraph"><p>By default, the command outputs warning messages but applies the patch. | |
When <tt>git-apply</tt> is used for statistics and not applying a | |
patch, it defaults to <tt>nowarn</tt>.</p></div> | |
<div class="paragraph"><p>You can use different <tt><action></tt> values to control this | |
behavior:</p></div> | |
<div class="ulist"><ul> | |
<li> | |
<p> | |
<tt>nowarn</tt> turns off the trailing whitespace warning. | |
</p> | |
</li> | |
<li> | |
<p> | |
<tt>warn</tt> outputs warnings for a few such errors, but applies the | |
patch as-is (default). | |
</p> | |
</li> | |
<li> | |
<p> | |
<tt>fix</tt> outputs warnings for a few such errors, and applies the | |
patch after fixing them (<tt>strip</tt> is a synonym --- the tool | |
used to consider only trailing whitespace characters as errors, and the | |
fix involved <em>stripping</em> them, but modern gits do more). | |
</p> | |
</li> | |
<li> | |
<p> | |
<tt>error</tt> outputs warnings for a few such errors, and refuses | |
to apply the patch. | |
</p> | |
</li> | |
<li> | |
<p> | |
<tt>error-all</tt> is similar to <tt>error</tt> but shows all errors. | |
</p> | |
</li> | |
</ul></div> | |
</dd> | |
<dt class="hdlist1"> | |
--inaccurate-eof | |
</dt> | |
<dd> | |
<p> | |
Under certain circumstances, some versions of <em>diff</em> do not correctly | |
detect a missing new-line at the end of the file. As a result, patches | |
created by such <em>diff</em> programs do not record incomplete lines | |
correctly. This option adds support for applying such patches by | |
working around this bug. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
-v | |
</dt> | |
<dt class="hdlist1"> | |
--verbose | |
</dt> | |
<dd> | |
<p> | |
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. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--recount | |
</dt> | |
<dd> | |
<p> | |
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). | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
--directory=<root> | |
</dt> | |
<dd> | |
<p> | |
Prepend <root> to all filenames. If a "-p" argument was also passed, | |
it is applied before prepending the new root. | |
</p> | |
<div class="paragraph"><p>For example, a patch that talks about updating <tt>a/git-gui.sh</tt> to <tt>b/git-gui.sh</tt> | |
can be applied to the file in the working tree <tt>modules/git-gui/git-gui.sh</tt> by | |
running <tt>git apply --directory=modules/git-gui</tt>.</p></div> | |
</dd> | |
</dl></div> | |
</div> | |
<h2 id="_configuration">Configuration</h2> | |
<div class="sectionbody"> | |
<div class="dlist"><dl> | |
<dt class="hdlist1"> | |
apply.ignorewhitespace | |
</dt> | |
<dd> | |
<p> | |
Set to <em>change</em> if you want changes in whitespace to be ignored by default. | |
Set to one of: no, none, never, false if you want changes in | |
whitespace to be significant. | |
</p> | |
</dd> | |
<dt class="hdlist1"> | |
apply.whitespace | |
</dt> | |
<dd> | |
<p> | |
When no <tt>--whitespace</tt> flag is given from the command | |
line, this configuration item is used as the default. | |
</p> | |
</dd> | |
</dl></div> | |
</div> | |
<h2 id="_submodules">Submodules</h2> | |
<div class="sectionbody"> | |
<div class="paragraph"><p>If the patch contains any changes to submodules then <em>git apply</em> | |
treats these changes as follows.</p></div> | |
<div class="paragraph"><p>If <tt>--index</tt> 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.</p></div> | |
<div class="paragraph"><p>If <tt>--index</tt> is not specified, then the submodule commits in the patch | |
are ignored and only the absence or presence of the corresponding | |
subdirectory is checked and (if possible) updated.</p></div> | |
</div> | |
<h2 id="_see_also">SEE ALSO</h2> | |
<div class="sectionbody"> | |
<div class="paragraph"><p><a href="git-am.html">git-am(1)</a>.</p></div> | |
</div> | |
<h2 id="_git">GIT</h2> | |
<div class="sectionbody"> | |
<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div> | |
</div> | |
<div id="footer"> | |
<div id="footer-text"> | |
Last updated 2011-03-15 23:30:13 UTC | |
</div> | |
</div> | |
</body> | |
</html> |