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=
"paragraph"><p><em>git update-ref
</em> [-m
<reason
>] (-d
<ref
> [
<oldvalue
>] | [--no-deref]
<ref
> <newvalue
> [
<oldvalue
>])
</p></div>
419 <h2 id=
"_description">DESCRIPTION
</h2>
420 <div class=
"sectionbody">
421 <div class=
"paragraph"><p>Given two arguments, stores the
<newvalue
> in the
<ref
>, possibly
422 dereferencing the symbolic refs. E.g.
<tt>git update-ref HEAD
423 <newvalue
></tt> updates the current branch head to the new object.
</p></div>
424 <div class=
"paragraph"><p>Given three arguments, stores the
<newvalue
> in the
<ref
>,
425 possibly dereferencing the symbolic refs, after verifying that
426 the current value of the
<ref
> matches
<oldvalue
>.
427 E.g.
<tt>git update-ref refs/heads/master
<newvalue
> <oldvalue
></tt>
428 updates the master branch head to
<newvalue
> only if its current
429 value is
<oldvalue
>. You can specify
40 "0" or an empty string
430 as
<oldvalue
> to make sure that the ref you are creating does
432 <div class=
"paragraph"><p>It also allows a
"ref" file to be a symbolic pointer to another
433 ref file by starting with the four-byte header sequence of
435 <div class=
"paragraph"><p>More importantly, it allows the update of a ref file to follow
436 these symbolic pointers, whether they are symlinks or these
437 "regular file symbolic refs". It follows
<strong>real
</strong> symlinks only
438 if they start with
"refs/": otherwise it will just try to read
439 them and update them as a regular file (i.e. it will allow the
440 filesystem to follow them, but will overwrite such a symlink to
441 somewhere else with a regular filename).
</p></div>
442 <div class=
"paragraph"><p>If --no-deref is given,
<ref
> itself is overwritten, rather than
443 the result of following the symbolic pointers.
</p></div>
444 <div class=
"paragraph"><p>In general, using
</p></div>
445 <div class=
"literalblock">
446 <div class=
"content">
447 <pre><tt>git update-ref HEAD
"$head"</tt></pre>
449 <div class=
"paragraph"><p>should be a
<em>lot
</em> safer than doing
</p></div>
450 <div class=
"literalblock">
451 <div class=
"content">
452 <pre><tt>echo
"$head" > "$GIT_DIR/HEAD"</tt></pre>
454 <div class=
"paragraph"><p>both from a symlink following standpoint
<strong>and
</strong> an error checking
455 standpoint. The
"refs/" rule for symlinks means that symlinks
456 that point to
"outside" the tree are safe: they
’ll be followed
457 for reading but not for writing (so we
’ll never write through a
458 ref symlink to some other tree, if you have copied a whole
459 archive by creating a symlink tree).
</p></div>
460 <div class=
"paragraph"><p>With
<tt>-d
</tt> flag, it deletes the named
<ref
> after verifying it
461 still contains
<oldvalue
>.
</p></div>
463 <h2 id=
"_logging_updates">Logging Updates
</h2>
464 <div class=
"sectionbody">
465 <div class=
"paragraph"><p>If config parameter
"core.logAllRefUpdates" is true or the file
466 "$GIT_DIR/logs/<ref>" exists then
<tt>git update-ref
</tt> will append
467 a line to the log file
"$GIT_DIR/logs/<ref>" (dereferencing all
468 symbolic refs before creating the log name) describing the change
469 in ref value. Log lines are formatted as:
</p></div>
470 <div class=
"olist arabic"><ol class=
"arabic">
473 oldsha1 SP newsha1 SP committer LF
475 <div class=
"paragraph"><p>Where
"oldsha1" is the
40 character hexadecimal value previously
476 stored in
<ref
>,
"newsha1" is the
40 character hexadecimal value of
477 <newvalue
> and
"committer" is the committer
’s name, email address
478 and date in the standard GIT committer ident format.
</p></div>
481 <div class=
"paragraph"><p>Optionally with -m:
</p></div>
482 <div class=
"olist arabic"><ol class=
"arabic">
485 oldsha1 SP newsha1 SP committer TAB message LF
487 <div class=
"paragraph"><p>Where all fields are as described above and
"message" is the
488 value supplied to the -m option.
</p></div>
491 <div class=
"paragraph"><p>An update will fail (without changing
<ref
>) if the current user is
492 unable to create a new log file, append to the existing log file
493 or does not have committer information available.
</p></div>
495 <h2 id=
"_git">GIT
</h2>
496 <div class=
"sectionbody">
497 <div class=
"paragraph"><p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p></div>
500 <div id=
"footer-text">
501 Last updated
2011-
03-
15 23:
30:
14 UTC