<!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 7.0.1" /> | |
<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; } | |
a:visited { color: fuchsia; } | |
em { | |
font-style: italic; | |
} | |
strong { | |
font-weight: bold; | |
} | |
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 { | |
border-bottom: 2px solid silver; | |
} | |
h2 { | |
border-bottom: 2px solid silver; | |
padding-top: 0.5em; | |
} | |
div.sectionbody { | |
font-family: serif; | |
margin-left: 0; | |
} | |
hr { | |
border: 1px solid silver; | |
} | |
p { | |
margin-top: 0.5em; | |
margin-bottom: 0.5em; | |
} | |
pre { | |
padding: 0; | |
margin: 0; | |
} | |
span#author { | |
color: #527bbd; | |
font-family: sans-serif; | |
font-weight: bold; | |
font-size: 1.2em; | |
} | |
span#email { | |
} | |
span#revision { | |
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, | |
div.tableblock, div.imageblock, div.exampleblock, div.verseblock, | |
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, | |
div.admonitionblock { | |
margin-right: 10%; | |
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 { | |
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 > div.content { | |
padding-left: 2.0em; | |
} | |
div.quoteblock .attribution { | |
text-align: right; | |
} | |
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.verseblock div.content { | |
white-space: pre; | |
} | |
div.imageblock div.content { padding-left: 0; } | |
div.imageblock img { border: 1px solid silver; } | |
span.image img { border-style: none; } | |
dl { | |
margin-top: 0.8em; | |
margin-bottom: 0.8em; | |
} | |
dt { | |
margin-top: 0.5em; | |
margin-bottom: 0; | |
font-style: italic; | |
} | |
dd > *:first-child { | |
margin-top: 0; | |
} | |
ul, ol { | |
list-style-position: outside; | |
} | |
ol.olist2 { | |
list-style-type: lower-alpha; | |
} | |
div.tableblock > table { | |
border-color: #527bbd; | |
border-width: 3px; | |
} | |
thead { | |
font-family: sans-serif; | |
font-weight: bold; | |
} | |
tfoot { | |
font-weight: bold; | |
} | |
div.hlist { | |
margin-top: 0.8em; | |
margin-bottom: 0.8em; | |
} | |
td.hlist1 { | |
vertical-align: top; | |
font-style: italic; | |
padding-right: 0.8em; | |
} | |
td.hlist2 { | |
vertical-align: top; | |
} | |
@media print { | |
div#footer-badges { display: none; } | |
} | |
include::./stylesheets/xhtml11-manpage.css[] | |
/* 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 { | |
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-content { | |
padding-left: 2.0em; | |
} | |
div.exampleblock-content { | |
border-left: 2px solid silver; | |
padding-left: 0.5em; | |
} | |
</style> | |
<title>git-update-index(1)</title> | |
</head> | |
<body> | |
<div id="header"> | |
<h1> | |
git-update-index(1) Manual Page | |
</h1> | |
<h2>NAME</h2> | |
<div class="sectionbody"> | |
<p>git-update-index - | |
Modifies the index or directory cache | |
</p> | |
</div> | |
</div> | |
<h2>SYNOPSIS</h2> | |
<div class="sectionbody"> | |
<p><em>git-update-index</em> | |
[--add] [--remove | --force-remove] [--replace] | |
[--refresh [-q] [--unmerged] [--ignore-missing]] | |
[--cacheinfo <mode> <object> <file>]* | |
[--chmod=(+|-)x] | |
[--info-only] [--index-info] | |
[-z] [--stdin] | |
[--verbose] | |
[--] [<file>]*</p> | |
</div> | |
<h2>DESCRIPTION</h2> | |
<div class="sectionbody"> | |
<p>Modifies the index or directory cache. Each file mentioned is updated | |
into the index and any <em>unmerged</em> or <em>needs updating</em> state is | |
cleared.</p> | |
<p>The way "git-update-index" handles files it is told about can be modified | |
using the various options:</p> | |
</div> | |
<h2>OPTIONS</h2> | |
<div class="sectionbody"> | |
<dl> | |
<dt> | |
--add | |
</dt> | |
<dd> | |
<p> | |
If a specified file isn't in the index already then it's | |
added. | |
Default behaviour is to ignore new files. | |
</p> | |
</dd> | |
<dt> | |
--remove | |
</dt> | |
<dd> | |
<p> | |
If a specified file is in the index but is missing then it's | |
removed. | |
Default behaviour is to ignore removed file. | |
</p> | |
</dd> | |
<dt> | |
--refresh | |
</dt> | |
<dd> | |
<p> | |
Looks at the current index and checks to see if merges or | |
updates are needed by checking stat() information. | |
</p> | |
</dd> | |
<dt> | |
-q | |
</dt> | |
<dd> | |
<p> | |
Quiet. If --refresh finds that the index needs an update, the | |
default behavior is to error out. This option makes | |
git-update-index continue anyway. | |
</p> | |
</dd> | |
<dt> | |
--unmerged | |
</dt> | |
<dd> | |
<p> | |
If --refresh finds unmerged changes in the index, the default | |
behavior is to error out. This option makes git-update-index | |
continue anyway. | |
</p> | |
</dd> | |
<dt> | |
--ignore-missing | |
</dt> | |
<dd> | |
<p> | |
Ignores missing files during a --refresh | |
</p> | |
</dd> | |
<dt> | |
--cacheinfo <mode> <object> <path> | |
</dt> | |
<dd> | |
<p> | |
Directly insert the specified info into the index. | |
</p> | |
</dd> | |
<dt> | |
--index-info | |
</dt> | |
<dd> | |
<p> | |
Read index information from stdin. | |
</p> | |
</dd> | |
<dt> | |
--chmod=(+|-)x | |
</dt> | |
<dd> | |
<p> | |
Set the execute permissions on the updated files. | |
</p> | |
</dd> | |
<dt> | |
--info-only | |
</dt> | |
<dd> | |
<p> | |
Do not create objects in the object database for all | |
<file> arguments that follow this flag; just insert | |
their object IDs into the index. | |
</p> | |
</dd> | |
<dt> | |
--force-remove | |
</dt> | |
<dd> | |
<p> | |
Remove the file from the index even when the working directory | |
still has such a file. (Implies --remove.) | |
</p> | |
</dd> | |
<dt> | |
--replace | |
</dt> | |
<dd> | |
<p> | |
By default, when a file <tt>path</tt> exists in the index, | |
git-update-index refuses an attempt to add <tt>path/file</tt>. | |
Similarly if a file <tt>path/file</tt> exists, a file <tt>path</tt> | |
cannot be added. With --replace flag, existing entries | |
that conflicts with the entry being added are | |
automatically removed with warning messages. | |
</p> | |
</dd> | |
<dt> | |
--stdin | |
</dt> | |
<dd> | |
<p> | |
Instead of taking list of paths from the command line, | |
read list of paths from the standard input. Paths are | |
separated by LF (i.e. one path per line) by default. | |
</p> | |
</dd> | |
<dt> | |
--verbose | |
</dt> | |
<dd> | |
<p> | |
Report what is being added and removed from index. | |
</p> | |
</dd> | |
<dt> | |
-z | |
</dt> | |
<dd> | |
<p> | |
Only meaningful with <tt>--stdin</tt>; paths are separated with | |
NUL character instead of LF. | |
</p> | |
</dd> | |
<dt> | |
— | |
</dt> | |
<dd> | |
<p> | |
Do not interpret any more arguments as options. | |
</p> | |
</dd> | |
<dt> | |
<file> | |
</dt> | |
<dd> | |
<p> | |
Files to act on. | |
Note that files beginning with <em>.</em> are discarded. This includes | |
<tt>./file</tt> and <tt>dir/./file</tt>. If you don't want this, then use | |
cleaner names. | |
The same applies to directories ending <em>/</em> and paths with <em>//</em> | |
</p> | |
</dd> | |
</dl> | |
</div> | |
<h2>Using --refresh</h2> | |
<div class="sectionbody"> | |
<p><em>--refresh</em> does not calculate a new sha1 file or bring the index | |
up-to-date for mode/content changes. But what it <strong>does</strong> do is to | |
"re-match" the stat information of a file with the index, so that you | |
can refresh the index for a file that hasn't been changed but where | |
the stat entry is out of date.</p> | |
<p>For example, you'd want to do this after doing a "git-read-tree", to link | |
up the stat index details with the proper files.</p> | |
</div> | |
<h2>Using --cacheinfo or --info-only</h2> | |
<div class="sectionbody"> | |
<p><em>--cacheinfo</em> is used to register a file that is not in the | |
current working directory. This is useful for minimum-checkout | |
merging.</p> | |
<p>To pretend you have a file with mode and sha1 at path, say:</p> | |
<div class="listingblock"> | |
<div class="content"> | |
<pre><tt>$ git-update-index --cacheinfo mode sha1 path</tt></pre> | |
</div></div> | |
<p><em>--info-only</em> is used to register files without placing them in the object | |
database. This is useful for status-only repositories.</p> | |
<p>Both <em>--cacheinfo</em> and <em>--info-only</em> behave similarly: the index is updated | |
but the object database isn't. <em>--cacheinfo</em> is useful when the object is | |
in the database but the file isn't available locally. <em>--info-only</em> is | |
useful when the file is available, but you do not wish to update the | |
object database.</p> | |
</div> | |
<h2>Using --index-info</h2> | |
<div class="sectionbody"> | |
<p><tt>--index-info</tt> is a more powerful mechanism that lets you feed | |
multiple entry definitions from the standard input, and designed | |
specifically for scripts. It can take inputs of three formats:</p> | |
<ol> | |
<li> | |
<p> | |
mode SP sha1 TAB path | |
</p> | |
<p>The first format is what "git-apply --index-info" | |
reports, and used to reconstruct a partial tree | |
that is used for phony merge base tree when falling | |
back on 3-way merge.</p> | |
</li> | |
<li> | |
<p> | |
mode SP type SP sha1 TAB path | |
</p> | |
<p>The second format is to stuff git-ls-tree output | |
into the index file.</p> | |
</li> | |
<li> | |
<p> | |
mode SP sha1 SP stage TAB path | |
</p> | |
<p>This format is to put higher order stages into the | |
index file and matches git-ls-files --stage output.</p> | |
</li> | |
</ol> | |
<p>To place a higher stage entry to the index, the path should | |
first be removed by feeding a mode=0 entry for the path, and | |
then feeding necessary input lines in the third format.</p> | |
<p>For example, starting with this index:</p> | |
<div class="listingblock"> | |
<div class="content"> | |
<pre><tt>$ git ls-files -s | |
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0 frotz</tt></pre> | |
</div></div> | |
<p>you can feed the following input to <tt>--index-info</tt>:</p> | |
<div class="listingblock"> | |
<div class="content"> | |
<pre><tt>$ git update-index --index-info | |
0 0000000000000000000000000000000000000000 frotz | |
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz | |
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz</tt></pre> | |
</div></div> | |
<p>The first line of the input feeds 0 as the mode to remove the | |
path; the SHA1 does not matter as long as it is well formatted. | |
Then the second and third line feeds stage 1 and stage 2 entries | |
for that path. After the above, we would end up with this:</p> | |
<div class="listingblock"> | |
<div class="content"> | |
<pre><tt>$ git ls-files -s | |
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz | |
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz</tt></pre> | |
</div></div> | |
</div> | |
<h2>Examples</h2> | |
<div class="sectionbody"> | |
<p>To update and refresh only the files already checked out:</p> | |
<div class="listingblock"> | |
<div class="content"> | |
<pre><tt>$ git-checkout-index -n -f -a && git-update-index --ignore-missing --refresh</tt></pre> | |
</div></div> | |
</div> | |
<h2>Configuration</h2> | |
<div class="sectionbody"> | |
<p>The command honors <tt>core.filemode</tt> configuration variable. If | |
your repository is on an filesystem whose executable bits are | |
unreliable, this should be set to <em>false</em> (see <a href="git-repo-config.html">git-repo-config(1)</a>). | |
This causes the command to ignore differences in file modes recorded | |
in the index and the file mode on the filesystem if they differ only on | |
executable bit. On such an unfortunate filesystem, you may | |
need to use <tt>git-update-index --chmod=</tt>.</p> | |
</div> | |
<h2>See Also</h2> | |
<div class="sectionbody"> | |
<p><a href="git-repo-config.html">git-repo-config(1)</a></p> | |
</div> | |
<h2>Author</h2> | |
<div class="sectionbody"> | |
<p>Written by Linus Torvalds <torvalds@osdl.org></p> | |
</div> | |
<h2>Documentation</h2> | |
<div class="sectionbody"> | |
<p>Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.</p> | |
</div> | |
<h2>GIT</h2> | |
<div class="sectionbody"> | |
<p>Part of the <a href="git.html">git(7)</a> suite</p> | |
</div> | |
<div id="footer"> | |
<div id="footer-text"> | |
Last updated 27-Dec-2005 00:16:52 PDT | |
</div> | |
</div> | |
</body> | |
</html> |