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.4.5" />
7 <title>git-update-ref(
1)
</title>
8 <style type=
"text/css">
10 p
, li
, dt
, dd
, div
, pre
, h1
, h2
, h3
, h4
, h5
, h6
{
12 border: 1px solid red;
17 margin: 1em 5% 1em 5%;
22 text-decoration: underline
;
42 h1
, h2
, h3
, h4
, h5
, h6
{
44 font-family: sans-serif
;
51 border-bottom: 2px solid silver
;
69 border: 1px solid silver
;
88 font-family: sans-serif
;
94 span#revnumber
, span#revdate
, span#revremark
{
95 font-family: sans-serif
;
99 font-family: sans-serif
;
101 border-top: 2px solid silver
;
107 padding-bottom: 0.5em;
111 padding-bottom: 0.5em;
116 margin-bottom: 1.5em;
118 div
.tableblock
, div
.imageblock
, div
.exampleblock
, div
.verseblock
,
119 div
.quoteblock
, div
.literalblock
, div
.listingblock
, div
.sidebarblock
,
120 div
.admonitionblock
{
122 margin-bottom: 1.5em;
124 div
.admonitionblock
{
126 margin-bottom: 2.5em;
129 div
.content
{ /* Block element content. */
133 /* Block element titles. */
134 div
.title
, caption
.title
{
136 font-family: sans-serif
;
140 margin-bottom: 0.5em;
146 td div
.title:first-child
{
149 div
.content div
.title:first-child
{
152 div
.content
+ div
.title
{
156 div
.sidebarblock
> div
.content
{
158 border: 1px solid silver
;
162 div
.listingblock
> div
.content
{
163 border: 1px solid silver
;
172 div
.quoteblock
> div
.attribution
{
181 div
.verseblock
> div
.content
{
184 div
.verseblock
> div
.attribution
{
188 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
189 div
.verseblock
+ div
.attribution
{
193 div
.admonitionblock
.icon
{
197 text-decoration: underline
;
199 padding-right: 0.5em;
201 div
.admonitionblock td
.content
{
203 border-left: 2px solid silver
;
206 div
.exampleblock
> div
.content
{
207 border-left: 2px solid silver
;
211 div
.imageblock div
.content
{ padding-left: 0; }
212 span
.image img
{ border-style: none
; }
213 a
.image:visited
{ color: white
; }
217 margin-bottom: 0.8em;
230 list-style-position: outside
;
233 list-style-type: decimal
;
236 list-style-type: lower-alpha
;
239 list-style-type: upper-alpha
;
242 list-style-type: lower-roman
;
245 list-style-type: upper-roman
;
248 div
.compact ul
, div
.compact ol
,
249 div
.compact p
, div
.compact p
,
250 div
.compact div
, div
.compact div
{
252 margin-bottom: 0.1em;
255 div
.tableblock
> table
{
256 border: 3px solid
#527bbd;
259 font-family: sans-serif
;
271 /* Because the table frame attribute is overriden by CSS in most browsers. */
272 div
.tableblock
> table
[frame
="void"] {
275 div
.tableblock
> table
[frame
="hsides"] {
276 border-left-style: none
;
277 border-right-style: none
;
279 div
.tableblock
> table
[frame
="vsides"] {
280 border-top-style: none
;
281 border-bottom-style: none
;
287 margin-bottom: 0.8em;
290 padding-bottom: 15px;
292 dt
.hdlist1
.strong
, td
.hdlist1
.strong
{
298 padding-right: 0.8em;
304 div
.hdlist
.compact tr
{
314 div#footer-badges
{ display: none
; }
319 font-family: sans-serif
;
323 margin-bottom: 0.1em;
326 div
.toclevel1
, div
.toclevel2
, div
.toclevel3
, div
.toclevel4
{
342 /* Overrides for manpage documents */
345 padding-bottom: 0.5em;
346 border-top: 2px solid silver
;
347 border-bottom: 2px solid silver
;
357 div#toc
{ display: none
; }
360 /* Workarounds for IE6's broken and incomplete CSS2. */
362 div
.sidebar-content
{
364 border: 1px solid silver
;
367 div
.sidebar-title
, div
.image-title
{
369 font-family: sans-serif
;
372 margin-bottom: 0.5em;
375 div
.listingblock div
.content
{
376 border: 1px solid silver
;
381 div
.quoteblock-attribution
{
386 div
.verseblock-content
{
389 div
.verseblock-attribution
{
394 div
.exampleblock-content
{
395 border-left: 2px solid silver
;
399 /* IE6 sets dynamically generated links as visited. */
400 div#toc
a:visited
{ color: blue
; }
406 git-update-ref(
1) Manual Page
409 <div class=
"sectionbody">
411 Update the object name stored in a ref safely
415 <h2 id=
"_synopsis">SYNOPSIS
</h2>
416 <div class=
"sectionbody">
417 <div class=
"verseblock">
418 <div class=
"verseblock-content"><em>git update-ref
</em> [-m
<reason
>] (-d
<ref
> [
<oldvalue
>] | [--no-deref]
<ref
> <newvalue
> [
<oldvalue
>])
</div>
419 <div class=
"verseblock-attribution">
422 <h2 id=
"_description">DESCRIPTION
</h2>
423 <div class=
"sectionbody">
424 <div class=
"paragraph"><p>Given two arguments, stores the
<newvalue
> in the
<ref
>, possibly
425 dereferencing the symbolic refs. E.g.
<tt>git update-ref HEAD
426 <newvalue
></tt> updates the current branch head to the new object.
</p></div>
427 <div class=
"paragraph"><p>Given three arguments, stores the
<newvalue
> in the
<ref
>,
428 possibly dereferencing the symbolic refs, after verifying that
429 the current value of the
<ref
> matches
<oldvalue
>.
430 E.g.
<tt>git update-ref refs/heads/master
<newvalue
> <oldvalue
></tt>
431 updates the master branch head to
<newvalue
> only if its current
432 value is
<oldvalue
>. You can specify
40 "0" or an empty string
433 as
<oldvalue
> to make sure that the ref you are creating does
435 <div class=
"paragraph"><p>It also allows a
"ref" file to be a symbolic pointer to another
436 ref file by starting with the four-byte header sequence of
438 <div class=
"paragraph"><p>More importantly, it allows the update of a ref file to follow
439 these symbolic pointers, whether they are symlinks or these
440 "regular file symbolic refs". It follows
<strong>real
</strong> symlinks only
441 if they start with
"refs/": otherwise it will just try to read
442 them and update them as a regular file (i.e. it will allow the
443 filesystem to follow them, but will overwrite such a symlink to
444 somewhere else with a regular filename).
</p></div>
445 <div class=
"paragraph"><p>If --no-deref is given,
<ref
> itself is overwritten, rather than
446 the result of following the symbolic pointers.
</p></div>
447 <div class=
"paragraph"><p>In general, using
</p></div>
448 <div class=
"literalblock">
449 <div class=
"content">
450 <pre><tt>git update-ref HEAD
"$head"</tt></pre>
452 <div class=
"paragraph"><p>should be a
<em>lot
</em> safer than doing
</p></div>
453 <div class=
"literalblock">
454 <div class=
"content">
455 <pre><tt>echo
"$head" > "$GIT_DIR/HEAD"</tt></pre>
457 <div class=
"paragraph"><p>both from a symlink following standpoint
<strong>and
</strong> an error checking
458 standpoint. The
"refs/" rule for symlinks means that symlinks
459 that point to
"outside" the tree are safe: they
’ll be followed
460 for reading but not for writing (so we
’ll never write through a
461 ref symlink to some other tree, if you have copied a whole
462 archive by creating a symlink tree).
</p></div>
463 <div class=
"paragraph"><p>With
<tt>-d
</tt> flag, it deletes the named
<ref
> after verifying it
464 still contains
<oldvalue
>.
</p></div>
466 <h2 id=
"_logging_updates">Logging Updates
</h2>
467 <div class=
"sectionbody">
468 <div class=
"paragraph"><p>If config parameter
"core.logAllRefUpdates" is true and the ref is one under
469 "refs/heads/",
"refs/remotes/",
"refs/notes/", or the symbolic ref HEAD; or
470 the file
"$GIT_DIR/logs/<ref>" exists then
<tt>git update-ref
</tt> will append
471 a line to the log file
"$GIT_DIR/logs/<ref>" (dereferencing all
472 symbolic refs before creating the log name) describing the change
473 in ref value. Log lines are formatted as:
</p></div>
474 <div class=
"olist arabic"><ol class=
"arabic">
477 oldsha1 SP newsha1 SP committer LF
479 <div class=
"paragraph"><p>Where
"oldsha1" is the
40 character hexadecimal value previously
480 stored in
<ref
>,
"newsha1" is the
40 character hexadecimal value of
481 <newvalue
> and
"committer" is the committer
’s name, email address
482 and date in the standard GIT committer ident format.
</p></div>
485 <div class=
"paragraph"><p>Optionally with -m:
</p></div>
486 <div class=
"olist arabic"><ol class=
"arabic">
489 oldsha1 SP newsha1 SP committer TAB message LF
491 <div class=
"paragraph"><p>Where all fields are as described above and
"message" is the
492 value supplied to the -m option.
</p></div>
495 <div class=
"paragraph"><p>An update will fail (without changing
<ref
>) if the current user is
496 unable to create a new log file, append to the existing log file
497 or does not have committer information available.
</p></div>
499 <h2 id=
"_git">GIT
</h2>
500 <div class=
"sectionbody">
501 <div class=
"paragraph"><p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p></div>
504 <div id=
"footer-text">
505 Last updated
2011-
07-
23 00:
49:
30 UTC