1 <!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">
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" />
6 <meta name=
"generator" content=
"AsciiDoc 8.2.5" />
7 <style type=
"text/css">
9 p
, li
, dt
, dd
, div
, pre
, h1
, h2
, h3
, h4
, h5
, h6
{
11 border: 1px solid red;
16 margin: 1em 5% 1em 5%;
21 text-decoration: underline
;
39 h1
, h2
, h3
, h4
, h5
, h6
{
41 font-family: sans-serif
;
48 border-bottom: 2px solid silver
;
66 border: 1px solid silver
;
81 font-family: sans-serif
;
88 font-family: sans-serif
;
92 font-family: sans-serif
;
94 border-top: 2px solid silver
;
100 padding-bottom: 0.5em;
104 padding-bottom: 0.5em;
108 div
.tableblock
, div
.imageblock
, div
.exampleblock
, div
.verseblock
,
109 div
.quoteblock
, div
.literalblock
, div
.listingblock
, div
.sidebarblock
,
110 div
.admonitionblock
{
113 margin-bottom: 1.5em;
115 div
.admonitionblock
{
117 margin-bottom: 2.5em;
120 div
.content
{ /* Block element content. */
124 /* Block element titles. */
125 div
.title
, caption
.title
{
126 font-family: sans-serif
;
130 margin-bottom: 0.5em;
136 td div
.title:first-child
{
139 div
.content div
.title:first-child
{
142 div
.content
+ div
.title
{
146 div
.sidebarblock
> div
.content
{
148 border: 1px solid silver
;
155 div
.listingblock
> div
.content
{
156 border: 1px solid silver
;
161 div
.quoteblock
> div
.content
{
168 div
.verseblock
+ div
.attribution
{
172 div
.admonitionblock
.icon
{
176 text-decoration: underline
;
178 padding-right: 0.5em;
180 div
.admonitionblock td
.content
{
182 border-left: 2px solid silver
;
185 div
.exampleblock
> div
.content
{
186 border-left: 2px solid silver
;
190 div
.verseblock div
.content
{
194 div
.imageblock div
.content
{ padding-left: 0; }
195 div
.imageblock img
{ border: 1px solid silver
; }
196 span
.image img
{ border-style: none
; }
200 margin-bottom: 0.8em;
212 list-style-position: outside
;
215 list-style-type: lower-alpha
;
218 div
.tableblock
> table
{
219 border: 3px solid
#527bbd;
222 font-family: sans-serif
;
231 margin-bottom: 0.8em;
239 padding-right: 0.8em;
246 div#footer-badges
{ display: none
; }
251 font-family: sans-serif
;
255 margin-bottom: 0.1em;
258 div
.toclevel1
, div
.toclevel2
, div
.toclevel3
, div
.toclevel4
{
274 include1::./stylesheets
/xhtml11-manpage
.css
[]
275 /* Workarounds for IE6's broken and incomplete CSS2. */
277 div
.sidebar-content
{
279 border: 1px solid silver
;
282 div
.sidebar-title
, div
.image-title
{
283 font-family: sans-serif
;
286 margin-bottom: 0.5em;
289 div
.listingblock div
.content
{
290 border: 1px solid silver
;
295 div
.quoteblock-content
{
299 div
.exampleblock-content
{
300 border-left: 2px solid silver
;
304 /* IE6 sets dynamically generated links as visited. */
305 div#toc
a:visited
{ color: blue
; }
307 <title>git-update-ref(
1)
</title>
312 git-update-ref(
1) Manual Page
315 <div class=
"sectionbody">
317 Update the object name stored in a ref safely
322 <div class=
"sectionbody">
323 <div class=
"para"><p><em>git update-ref
</em> [-m
<reason
>] (-d
<ref
> [
<oldvalue
>] | [--no-deref]
<ref
> <newvalue
> [
<oldvalue
>])
</p></div>
325 <h2 id=
"_description">DESCRIPTION
</h2>
326 <div class=
"sectionbody">
327 <div class=
"para"><p>Given two arguments, stores the
<newvalue
> in the
<ref
>, possibly
328 dereferencing the symbolic refs. E.g.
<tt>git update-ref HEAD
329 <newvalue
></tt> updates the current branch head to the new object.
</p></div>
330 <div class=
"para"><p>Given three arguments, stores the
<newvalue
> in the
<ref
>,
331 possibly dereferencing the symbolic refs, after verifying that
332 the current value of the
<ref
> matches
<oldvalue
>.
333 E.g.
<tt>git update-ref refs/heads/master
<newvalue
> <oldvalue
></tt>
334 updates the master branch head to
<newvalue
> only if its current
335 value is
<oldvalue
>. You can specify
40 "0" or an empty string
336 as
<oldvalue
> to make sure that the ref you are creating does
338 <div class=
"para"><p>It also allows a
"ref" file to be a symbolic pointer to another
339 ref file by starting with the four-byte header sequence of
341 <div class=
"para"><p>More importantly, it allows the update of a ref file to follow
342 these symbolic pointers, whether they are symlinks or these
343 "regular file symbolic refs". It follows
<strong>real
</strong> symlinks only
344 if they start with
"refs/": otherwise it will just try to read
345 them and update them as a regular file (i.e. it will allow the
346 filesystem to follow them, but will overwrite such a symlink to
347 somewhere else with a regular filename).
</p></div>
348 <div class=
"para"><p>If --no-deref is given,
<ref
> itself is overwritten, rather than
349 the result of following the symbolic pointers.
</p></div>
350 <div class=
"para"><p>In general, using
</p></div>
351 <div class=
"literalblock">
352 <div class=
"content">
353 <pre><tt>git update-ref HEAD
"$head"</tt></pre>
355 <div class=
"para"><p>should be a _lot_ safer than doing
</p></div>
356 <div class=
"literalblock">
357 <div class=
"content">
358 <pre><tt>echo
"$head" > "$GIT_DIR/HEAD"</tt></pre>
360 <div class=
"para"><p>both from a symlink following standpoint
<strong>and
</strong> an error checking
361 standpoint. The
"refs/" rule for symlinks means that symlinks
362 that point to
"outside" the tree are safe: they'll be followed
363 for reading but not for writing (so we'll never write through a
364 ref symlink to some other tree, if you have copied a whole
365 archive by creating a symlink tree).
</p></div>
366 <div class=
"para"><p>With
<tt>-d
</tt> flag, it deletes the named
<ref
> after verifying it
367 still contains
<oldvalue
>.
</p></div>
369 <h2 id=
"_logging_updates">Logging Updates
</h2>
370 <div class=
"sectionbody">
371 <div class=
"para"><p>If config parameter
"core.logAllRefUpdates" is true or the file
372 "$GIT_DIR/logs/<ref>" exists then
<tt>git update-ref
</tt> will append
373 a line to the log file
"$GIT_DIR/logs/<ref>" (dereferencing all
374 symbolic refs before creating the log name) describing the change
375 in ref value. Log lines are formatted as:
</p></div>
376 <div class=
"olist"><ol>
379 oldsha1 SP newsha1 SP committer LF
381 <div class=
"para"><p>Where
"oldsha1" is the
40 character hexadecimal value previously
382 stored in
<ref
>,
"newsha1" is the
40 character hexadecimal value of
383 <newvalue
> and
"committer" is the committer's name, email address
384 and date in the standard GIT committer ident format.
</p></div>
387 <div class=
"para"><p>Optionally with -m:
</p></div>
388 <div class=
"olist"><ol>
391 oldsha1 SP newsha1 SP committer TAB message LF
393 <div class=
"para"><p>Where all fields are as described above and
"message" is the
394 value supplied to the -m option.
</p></div>
397 <div class=
"para"><p>An update will fail (without changing
<ref
>) if the current user is
398 unable to create a new log file, append to the existing log file
399 or does not have committer information available.
</p></div>
401 <h2 id=
"_author">Author
</h2>
402 <div class=
"sectionbody">
403 <div class=
"para"><p>Written by Linus Torvalds
<torvalds@osdl.org
>.
</p></div>
405 <h2 id=
"_git">GIT
</h2>
406 <div class=
"sectionbody">
407 <div class=
"para"><p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p></div>
410 <div id=
"footer-text">
411 Last updated
2010-
09-
03 21:
30:
34 UTC