blob: 89c13b7e480d08a672ab4907d22c4d264654445f [file] [log] [blame]
Junio C Hamano1a4e8412005-12-27 08:17:231<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Junio C Hamano4604fe52008-09-19 06:37:106<meta name="generator" content="AsciiDoc 8.2.5" />
Junio C Hamano1a4e8412005-12-27 08:17:237<style type="text/css">
8/* Debug borders */
9p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
10/*
11 border: 1px solid red;
12*/
13}
14
15body {
16 margin: 1em 5% 1em 5%;
17}
18
Junio C Hamano4604fe52008-09-19 06:37:1019a {
20 color: blue;
21 text-decoration: underline;
22}
23a:visited {
24 color: fuchsia;
25}
Junio C Hamano1a4e8412005-12-27 08:17:2326
27em {
28 font-style: italic;
29}
30
31strong {
32 font-weight: bold;
33}
34
35tt {
36 color: navy;
37}
38
39h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
45}
46
Junio C Hamano4604fe52008-09-19 06:37:1047h1, h2, h3 {
Junio C Hamano1a4e8412005-12-27 08:17:2348 border-bottom: 2px solid silver;
49}
50h2 {
Junio C Hamano1a4e8412005-12-27 08:17:2351 padding-top: 0.5em;
52}
Junio C Hamano4604fe52008-09-19 06:37:1053h3 {
54 float: left;
55}
56h3 + * {
57 clear: left;
58}
Junio C Hamano1a4e8412005-12-27 08:17:2359
60div.sectionbody {
61 font-family: serif;
62 margin-left: 0;
63}
64
65hr {
66 border: 1px solid silver;
67}
68
69p {
70 margin-top: 0.5em;
71 margin-bottom: 0.5em;
72}
73
74pre {
75 padding: 0;
76 margin: 0;
77}
78
79span#author {
80 color: #527bbd;
81 font-family: sans-serif;
82 font-weight: bold;
Junio C Hamano4604fe52008-09-19 06:37:1083 font-size: 1.1em;
Junio C Hamano1a4e8412005-12-27 08:17:2384}
85span#email {
86}
87span#revision {
88 font-family: sans-serif;
89}
90
91div#footer {
92 font-family: sans-serif;
93 font-size: small;
94 border-top: 2px solid silver;
95 padding-top: 0.5em;
96 margin-top: 4.0em;
97}
98div#footer-text {
99 float: left;
100 padding-bottom: 0.5em;
101}
102div#footer-badges {
103 float: right;
104 padding-bottom: 0.5em;
105}
106
107div#preamble,
108div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
109div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
110div.admonitionblock {
111 margin-right: 10%;
112 margin-top: 1.5em;
113 margin-bottom: 1.5em;
114}
115div.admonitionblock {
116 margin-top: 2.5em;
117 margin-bottom: 2.5em;
118}
119
120div.content { /* Block element content. */
121 padding: 0;
122}
123
124/* Block element titles. */
125div.title, caption.title {
126 font-family: sans-serif;
127 font-weight: bold;
128 text-align: left;
129 margin-top: 1.0em;
130 margin-bottom: 0.5em;
131}
132div.title + * {
133 margin-top: 0;
134}
135
136td div.title:first-child {
137 margin-top: 0.0em;
138}
139div.content div.title:first-child {
140 margin-top: 0.0em;
141}
142div.content + div.title {
143 margin-top: 0.0em;
144}
145
146div.sidebarblock > div.content {
147 background: #ffffee;
148 border: 1px solid silver;
149 padding: 0.5em;
150}
151
Junio C Hamano4604fe52008-09-19 06:37:10152div.listingblock {
153 margin-right: 0%;
154}
Junio C Hamano1a4e8412005-12-27 08:17:23155div.listingblock > div.content {
156 border: 1px solid silver;
157 background: #f4f4f4;
158 padding: 0.5em;
159}
160
161div.quoteblock > div.content {
162 padding-left: 2.0em;
163}
Junio C Hamano4604fe52008-09-19 06:37:10164
165div.attribution {
Junio C Hamano1a4e8412005-12-27 08:17:23166 text-align: right;
167}
Junio C Hamano4604fe52008-09-19 06:37:10168div.verseblock + div.attribution {
169 text-align: left;
170}
Junio C Hamano1a4e8412005-12-27 08:17:23171
172div.admonitionblock .icon {
173 vertical-align: top;
174 font-size: 1.1em;
175 font-weight: bold;
176 text-decoration: underline;
177 color: #527bbd;
178 padding-right: 0.5em;
179}
180div.admonitionblock td.content {
181 padding-left: 0.5em;
182 border-left: 2px solid silver;
183}
184
185div.exampleblock > div.content {
186 border-left: 2px solid silver;
187 padding: 0.5em;
188}
189
190div.verseblock div.content {
191 white-space: pre;
192}
193
194div.imageblock div.content { padding-left: 0; }
195div.imageblock img { border: 1px solid silver; }
196span.image img { border-style: none; }
197
198dl {
199 margin-top: 0.8em;
200 margin-bottom: 0.8em;
201}
202dt {
203 margin-top: 0.5em;
204 margin-bottom: 0;
205 font-style: italic;
206}
207dd > *:first-child {
208 margin-top: 0;
209}
210
211ul, ol {
212 list-style-position: outside;
213}
Junio C Hamano4604fe52008-09-19 06:37:10214div.olist2 ol {
Junio C Hamano1a4e8412005-12-27 08:17:23215 list-style-type: lower-alpha;
216}
217
218div.tableblock > table {
Junio C Hamano4604fe52008-09-19 06:37:10219 border: 3px solid #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23220}
221thead {
222 font-family: sans-serif;
223 font-weight: bold;
224}
225tfoot {
226 font-weight: bold;
227}
228
229div.hlist {
230 margin-top: 0.8em;
231 margin-bottom: 0.8em;
232}
Junio C Hamano4604fe52008-09-19 06:37:10233div.hlist td {
234 padding-bottom: 5px;
235}
Junio C Hamano1a4e8412005-12-27 08:17:23236td.hlist1 {
237 vertical-align: top;
238 font-style: italic;
239 padding-right: 0.8em;
240}
241td.hlist2 {
242 vertical-align: top;
243}
244
245@media print {
246 div#footer-badges { display: none; }
247}
Junio C Hamano4604fe52008-09-19 06:37:10248
249div#toctitle {
250 color: #527bbd;
251 font-family: sans-serif;
252 font-size: 1.1em;
253 font-weight: bold;
254 margin-top: 1.0em;
255 margin-bottom: 0.1em;
256}
257
258div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
259 margin-top: 0;
260 margin-bottom: 0;
261}
262div.toclevel2 {
263 margin-left: 2em;
264 font-size: 0.9em;
265}
266div.toclevel3 {
267 margin-left: 4em;
268 font-size: 0.9em;
269}
270div.toclevel4 {
271 margin-left: 6em;
272 font-size: 0.9em;
273}
274include1::./stylesheets/xhtml11-manpage.css[]
Junio C Hamano1a4e8412005-12-27 08:17:23275/* Workarounds for IE6's broken and incomplete CSS2. */
276
277div.sidebar-content {
278 background: #ffffee;
279 border: 1px solid silver;
280 padding: 0.5em;
281}
282div.sidebar-title, div.image-title {
283 font-family: sans-serif;
284 font-weight: bold;
285 margin-top: 0.0em;
286 margin-bottom: 0.5em;
287}
288
289div.listingblock div.content {
290 border: 1px solid silver;
291 background: #f4f4f4;
292 padding: 0.5em;
293}
294
295div.quoteblock-content {
296 padding-left: 2.0em;
297}
298
299div.exampleblock-content {
300 border-left: 2px solid silver;
301 padding-left: 0.5em;
302}
Junio C Hamano4604fe52008-09-19 06:37:10303
304/* IE6 sets dynamically generated links as visited. */
305div#toc a:visited { color: blue; }
Junio C Hamano1a4e8412005-12-27 08:17:23306</style>
307<title>git-update-ref(1)</title>
308</head>
309<body>
310<div id="header">
311<h1>
312git-update-ref(1) Manual Page
313</h1>
314<h2>NAME</h2>
315<div class="sectionbody">
316<p>git-update-ref -
Junio C Hamano7c73c662007-01-19 00:37:50317 Update the object name stored in a ref safely
Junio C Hamano1a4e8412005-12-27 08:17:23318</p>
319</div>
320</div>
321<h2>SYNOPSIS</h2>
322<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10323<div class="para"><p><em>git update-ref</em> [-m &lt;reason&gt;] (-d &lt;ref&gt; [&lt;oldvalue&gt;] | [--no-deref] &lt;ref&gt; &lt;newvalue&gt; [&lt;oldvalue&gt;])</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23324</div>
Junio C Hamano4604fe52008-09-19 06:37:10325<h2 id="_description">DESCRIPTION</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23326<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10327<div class="para"><p>Given two arguments, stores the &lt;newvalue&gt; in the &lt;ref&gt;, possibly
Junio C Hamanofce7c7e2008-07-02 03:06:38328dereferencing the symbolic refs. E.g. <tt>git update-ref HEAD
Junio C Hamano4604fe52008-09-19 06:37:10329&lt;newvalue&gt;</tt> updates the current branch head to the new object.</p></div>
330<div class="para"><p>Given three arguments, stores the &lt;newvalue&gt; in the &lt;ref&gt;,
Junio C Hamano1a4e8412005-12-27 08:17:23331possibly dereferencing the symbolic refs, after verifying that
332the current value of the &lt;ref&gt; matches &lt;oldvalue&gt;.
Junio C Hamanofce7c7e2008-07-02 03:06:38333E.g. <tt>git update-ref refs/heads/master &lt;newvalue&gt; &lt;oldvalue&gt;</tt>
Junio C Hamano1a4e8412005-12-27 08:17:23334updates the master branch head to &lt;newvalue&gt; only if its current
Junio C Hamanoa2ec14f2006-11-02 00:22:48335value is &lt;oldvalue&gt;. You can specify 40 "0" or an empty string
336as &lt;oldvalue&gt; to make sure that the ref you are creating does
Junio C Hamano4604fe52008-09-19 06:37:10337not exist.</p></div>
338<div class="para"><p>It also allows a "ref" file to be a symbolic pointer to another
Junio C Hamano1a4e8412005-12-27 08:17:23339ref file by starting with the four-byte header sequence of
Junio C Hamano4604fe52008-09-19 06:37:10340"ref:".</p></div>
341<div class="para"><p>More importantly, it allows the update of a ref file to follow
Junio C Hamano1a4e8412005-12-27 08:17:23342these symbolic pointers, whether they are symlinks or these
343"regular file symbolic refs". It follows <strong>real</strong> symlinks only
344if they start with "refs/": otherwise it will just try to read
345them and update them as a regular file (i.e. it will allow the
346filesystem to follow them, but will overwrite such a symlink to
Junio C Hamano4604fe52008-09-19 06:37:10347somewhere else with a regular filename).</p></div>
348<div class="para"><p>If --no-deref is given, &lt;ref&gt; itself is overwritten, rather than
349the result of following the symbolic pointers.</p></div>
350<div class="para"><p>In general, using</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23351<div class="literalblock">
352<div class="content">
Junio C Hamanofce7c7e2008-07-02 03:06:38353<pre><tt>git update-ref HEAD "$head"</tt></pre>
Junio C Hamano1a4e8412005-12-27 08:17:23354</div></div>
Junio C Hamano4604fe52008-09-19 06:37:10355<div class="para"><p>should be a _lot_ safer than doing</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23356<div class="literalblock">
357<div class="content">
358<pre><tt>echo "$head" &gt; "$GIT_DIR/HEAD"</tt></pre>
359</div></div>
Junio C Hamano4604fe52008-09-19 06:37:10360<div class="para"><p>both from a symlink following standpoint <strong>and</strong> an error checking
Junio C Hamano1a4e8412005-12-27 08:17:23361standpoint. The "refs/" rule for symlinks means that symlinks
362that point to "outside" the tree are safe: they'll be followed
363for reading but not for writing (so we'll never write through a
364ref symlink to some other tree, if you have copied a whole
Junio C Hamano4604fe52008-09-19 06:37:10365archive by creating a symlink tree).</p></div>
366<div class="para"><p>With <tt>-d</tt> flag, it deletes the named &lt;ref&gt; after verifying it
367still contains &lt;oldvalue&gt;.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23368</div>
Junio C Hamano4604fe52008-09-19 06:37:10369<h2 id="_logging_updates">Logging Updates</h2>
Junio C Hamano341071d2006-06-04 07:24:48370<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10371<div class="para"><p>If config parameter "core.logAllRefUpdates" is true or the file
Junio C Hamanofce7c7e2008-07-02 03:06:38372"$GIT_DIR/logs/&lt;ref&gt;" exists then <tt>git update-ref</tt> will append
Junio C Hamano341071d2006-06-04 07:24:48373a line to the log file "$GIT_DIR/logs/&lt;ref&gt;" (dereferencing all
374symbolic refs before creating the log name) describing the change
Junio C Hamano4604fe52008-09-19 06:37:10375in ref value. Log lines are formatted as:</p></div>
376<div class="olist"><ol>
Junio C Hamano341071d2006-06-04 07:24:48377<li>
378<p>
379oldsha1 SP newsha1 SP committer LF
380</p>
Junio C Hamano4604fe52008-09-19 06:37:10381<div class="para"><p>Where "oldsha1" is the 40 character hexadecimal value previously
Junio C Hamano341071d2006-06-04 07:24:48382stored in &lt;ref&gt;, "newsha1" is the 40 character hexadecimal value of
383&lt;newvalue&gt; and "committer" is the committer's name, email address
Junio C Hamano4604fe52008-09-19 06:37:10384and date in the standard GIT committer ident format.</p></div>
Junio C Hamano341071d2006-06-04 07:24:48385</li>
Junio C Hamano4604fe52008-09-19 06:37:10386</ol></div>
387<div class="para"><p>Optionally with -m:</p></div>
388<div class="olist"><ol>
Junio C Hamano341071d2006-06-04 07:24:48389<li>
390<p>
391oldsha1 SP newsha1 SP committer TAB message LF
392</p>
Junio C Hamano4604fe52008-09-19 06:37:10393<div class="para"><p>Where all fields are as described above and "message" is the
394value supplied to the -m option.</p></div>
Junio C Hamano341071d2006-06-04 07:24:48395</li>
Junio C Hamano4604fe52008-09-19 06:37:10396</ol></div>
397<div class="para"><p>An update will fail (without changing &lt;ref&gt;) if the current user is
Junio C Hamano341071d2006-06-04 07:24:48398unable to create a new log file, append to the existing log file
Junio C Hamano4604fe52008-09-19 06:37:10399or does not have committer information available.</p></div>
Junio C Hamano341071d2006-06-04 07:24:48400</div>
Junio C Hamano4604fe52008-09-19 06:37:10401<h2 id="_author">Author</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23402<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10403<div class="para"><p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt;.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23404</div>
Junio C Hamano4604fe52008-09-19 06:37:10405<h2 id="_git">GIT</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23406<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10407<div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23408</div>
409<div id="footer">
410<div id="footer-text">
Junio C Hamanofa2ad882009-12-03 09:15:44411Last updated 2009-12-03 09:12:51 UTC
Junio C Hamano1a4e8412005-12-27 08:17:23412</div>
413</div>
414</body>
415</html>