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.5.2" />
7 <title>git-check-ref-format(
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.0em;
131 div
.content
{ /* Block element content. */
135 /* Block element titles. */
136 div
.title
, caption
.title
{
138 font-family: sans-serif
;
142 margin-bottom: 0.5em;
148 td div
.title:first-child
{
151 div
.content div
.title:first-child
{
154 div
.content
+ div
.title
{
158 div
.sidebarblock
> div
.content
{
160 border: 1px solid silver
;
164 div
.listingblock
> div
.content
{
165 border: 1px solid silver
;
170 div
.quoteblock
, div
.verseblock
{
174 border-left: 5px solid
#dddddd;
178 div
.quoteblock
> div
.attribution
{
183 div
.verseblock
> div
.content
{
186 div
.verseblock
> div
.attribution
{
190 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
191 div
.verseblock
+ div
.attribution
{
195 div
.admonitionblock
.icon
{
199 text-decoration: underline
;
201 padding-right: 0.5em;
203 div
.admonitionblock td
.content
{
205 border-left: 3px solid
#dddddd;
208 div
.exampleblock
> div
.content
{
209 border-left: 3px solid
#dddddd;
213 div
.imageblock div
.content
{ padding-left: 0; }
214 span
.image img
{ border-style: none
; }
215 a
.image:visited
{ color: white
; }
219 margin-bottom: 0.8em;
232 list-style-position: outside
;
235 list-style-type: decimal
;
238 list-style-type: lower-alpha
;
241 list-style-type: upper-alpha
;
244 list-style-type: lower-roman
;
247 list-style-type: upper-roman
;
250 div
.compact ul
, div
.compact ol
,
251 div
.compact p
, div
.compact p
,
252 div
.compact div
, div
.compact div
{
254 margin-bottom: 0.1em;
257 div
.tableblock
> table
{
258 border: 3px solid
#527bbd;
260 thead
, p
.table
.header
{
261 font-family: sans-serif
;
273 /* Because the table frame attribute is overriden by CSS in most browsers. */
274 div
.tableblock
> table
[frame
="void"] {
277 div
.tableblock
> table
[frame
="hsides"] {
278 border-left-style: none
;
279 border-right-style: none
;
281 div
.tableblock
> table
[frame
="vsides"] {
282 border-top-style: none
;
283 border-bottom-style: none
;
289 margin-bottom: 0.8em;
292 padding-bottom: 15px;
294 dt
.hdlist1
.strong
, td
.hdlist1
.strong
{
300 padding-right: 0.8em;
306 div
.hdlist
.compact tr
{
315 .footnote, .footnoteref {
319 span
.footnote
, span
.footnoteref
{
320 vertical-align: super
;
324 margin: 20px 0 20px 0;
328 #footnotes div
.footnote
{
334 border-top: 1px solid silver
;
344 div#footer-badges
{ display: none
; }
348 margin-bottom: 2.5em;
353 font-family: sans-serif
;
357 margin-bottom: 0.1em;
360 div
.toclevel1
, div
.toclevel2
, div
.toclevel3
, div
.toclevel4
{
376 /* Overrides for manpage documents */
379 padding-bottom: 0.5em;
380 border-top: 2px solid silver
;
381 border-bottom: 2px solid silver
;
391 div#toc
{ display: none
; }
394 /* Workarounds for IE6's broken and incomplete CSS2. */
396 div
.sidebar-content
{
398 border: 1px solid silver
;
401 div
.sidebar-title
, div
.image-title
{
403 font-family: sans-serif
;
406 margin-bottom: 0.5em;
409 div
.listingblock div
.content
{
410 border: 1px solid silver
;
415 div
.quoteblock-attribution
{
420 div
.verseblock-content
{
423 div
.verseblock-attribution
{
428 div
.exampleblock-content
{
429 border-left: 3px solid
#dddddd;
433 /* IE6 sets dynamically generated links as visited. */
434 div#toc
a:visited
{ color: blue
; }
436 <script type=
"text/javascript">
438 window
.onload = function(){asciidoc
.footnotes();}
439 var asciidoc
= { // Namespace.
441 /////////////////////////////////////////////////////////////////////
442 // Table Of Contents generator
443 /////////////////////////////////////////////////////////////////////
445 /* Author: Mihai Bazon, September 2002
446 * http://students.infoiasi.ro/~mishoo
448 * Table Of Content generator
451 * Feel free to use this script under the terms of the GNU General Public
452 * License, as long as you do not remove or alter this notice.
455 /* modified by Troy D. Hanson, September 2006. License: GPL */
456 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
459 toc: function (toclevels
) {
461 function getText(el
) {
463 for (var i
= el
.firstChild
; i
!= null; i
= i
.nextSibling
) {
464 if (i
.nodeType
== 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
466 else if (i
.firstChild
!= null)
472 function TocEntry(el
, text
, toclevel
) {
475 this.toclevel
= toclevel
;
478 function tocEntries(el
, toclevels
) {
479 var result
= new Array
;
480 var re
= new RegExp('[hH]([2-'+(toclevels
+1)+'])');
481 // Function that scans the DOM tree for header elements (the DOM2
482 // nodeIterator API would be a better technique but not supported by all
484 var iterate = function (el
) {
485 for (var i
= el
.firstChild
; i
!= null; i
= i
.nextSibling
) {
486 if (i
.nodeType
== 1 /* Node.ELEMENT_NODE */) {
487 var mo
= re
.exec(i
.tagName
);
488 if (mo
&& (i
.getAttribute("class") || i
.getAttribute("className")) != "float") {
489 result
[result
.length
] = new TocEntry(i
, getText(i
), mo
[1]-1);
499 var toc
= document
.getElementById("toc");
500 var entries
= tocEntries(document
.getElementById("content"), toclevels
);
501 for (var i
= 0; i
< entries
.length
; ++i
) {
502 var entry
= entries
[i
];
503 if (entry
.element
.id
== "")
504 entry
.element
.id
= "_toc_" + i
;
505 var a
= document
.createElement("a");
506 a
.href
= "#" + entry
.element
.id
;
507 a
.appendChild(document
.createTextNode(entry
.text
));
508 var div
= document
.createElement("div");
510 div
.className
= "toclevel" + entry
.toclevel
;
511 toc
.appendChild(div
);
513 if (entries
.length
== 0)
514 toc
.parentNode
.removeChild(toc
);
518 /////////////////////////////////////////////////////////////////////
519 // Footnotes generator
520 /////////////////////////////////////////////////////////////////////
522 /* Based on footnote generation code from:
523 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
526 footnotes: function () {
527 var cont
= document
.getElementById("content");
528 var noteholder
= document
.getElementById("footnotes");
529 var spans
= cont
.getElementsByTagName("span");
532 for (i
=0; i
<spans
.length
; i
++) {
533 if (spans
[i
].className
== "footnote") {
535 // Use [\s\S] in place of . so multi-line matches work.
536 // Because JavaScript has no s (dotall) regex flag.
537 note
= spans
[i
].innerHTML
.match(/\s*\[([\s\S]*)]\s*/)[1];
538 noteholder
.innerHTML
+=
539 "<div class='footnote' id='_footnote_" + n
+ "'>" +
540 "<a href='#_footnoteref_" + n
+ "' title='Return to text'>" +
541 n
+ "</a>. " + note
+ "</div>";
543 "[<a id='_footnoteref_" + n
+ "' href='#_footnote_" + n
+
544 "' title='View footnote' class='footnote'>" + n
+ "</a>]";
545 var id
=spans
[i
].getAttribute("id");
546 if (id
!= null) refs
["#"+id
] = n
;
550 noteholder
.parentNode
.removeChild(noteholder
);
552 // Process footnoterefs.
553 for (i
=0; i
<spans
.length
; i
++) {
554 if (spans
[i
].className
== "footnoteref") {
555 var href
= spans
[i
].getElementsByTagName("a")[0].getAttribute("href");
556 href
= href
.match(/#.*/)[0]; // Because IE return full URL.
559 "[<a href='#_footnote_" + n
+
560 "' title='View footnote' class='footnote'>" + n
+ "</a>]";
573 git-check-ref-format(
1) Manual Page
576 <div class=
"sectionbody">
577 <p>git-check-ref-format -
578 Ensures that a reference name is well formed
583 <h2 id=
"_synopsis">SYNOPSIS
</h2>
584 <div class=
"sectionbody">
585 <div class=
"verseblock">
586 <div class=
"verseblock-content"><em>git check-ref-format
</em> [--normalize]
587 [--[no-]allow-onelevel] [--refspec-pattern]
589 <em>git check-ref-format
</em> --branch
<branchname-shorthand
></div>
590 <div class=
"verseblock-attribution">
593 <h2 id=
"_description">DESCRIPTION
</h2>
594 <div class=
"sectionbody">
595 <div class=
"paragraph"><p>Checks if a given
<em>refname
</em> is acceptable, and exits with a non-zero
596 status if it is not.
</p></div>
597 <div class=
"paragraph"><p>A reference is used in git to specify branches and tags. A
598 branch head is stored in the
<tt>refs/heads
</tt> hierarchy, while
599 a tag is stored in the
<tt>refs/tags
</tt> hierarchy of the ref namespace
600 (typically in
<tt>$GIT_DIR/refs/heads
</tt> and
<tt>$GIT_DIR/refs/tags
</tt>
601 directories or, as entries in file
<tt>$GIT_DIR/packed-refs
</tt>
602 if refs are packed by
<tt>git gc
</tt>).
</p></div>
603 <div class=
"paragraph"><p>git imposes the following rules on how references are named:
</p></div>
604 <div class=
"olist arabic"><ol class=
"arabic">
607 They can include slash
<tt>/
</tt> for hierarchical (directory)
608 grouping, but no slash-separated component can begin with a
609 dot
<tt>.
</tt> or end with the sequence
<tt>.lock
</tt>.
614 They must contain at least one
<tt>/
</tt>. This enforces the presence of a
615 category like
<tt>heads/
</tt>,
<tt>tags/
</tt> etc. but the actual names are not
616 restricted. If the
<tt>--allow-onelevel
</tt> option is used, this rule
622 They cannot have two consecutive dots
<tt>..
</tt> anywhere.
627 They cannot have ASCII control characters (i.e. bytes whose
628 values are lower than \
040, or \
177 <tt>DEL
</tt>), space, tilde
<tt>~
</tt>,
629 caret
<tt>^</tt>, or colon
<tt>:
</tt> anywhere.
634 They cannot have question-mark
<tt>?
</tt>, asterisk
<tt>*</tt>, or open
635 bracket
<tt>[
</tt> anywhere. See the
<tt>--refspec-pattern
</tt> option below for
636 an exception to this rule.
641 They cannot begin or end with a slash
<tt>/
</tt> or contain multiple
642 consecutive slashes (see the
<tt>--normalize
</tt> option below for an
643 exception to this rule)
648 They cannot end with a dot
<tt>.
</tt>.
653 They cannot contain a sequence
<tt>@{
</tt>.
658 They cannot contain a
<tt>\
</tt>.
662 <div class=
"paragraph"><p>These rules make it easy for shell script based tools to parse
663 reference names, pathname expansion by the shell when a reference name is used
664 unquoted (by mistake), and also avoids ambiguities in certain
665 reference name expressions (see
<a href=
"gitrevisions.html">gitrevisions(
7)
</a>):
</p></div>
666 <div class=
"olist arabic"><ol class=
"arabic">
669 A double-dot
<tt>..
</tt> is often used as in
<tt>ref1..ref2
</tt>, and in some
670 contexts this notation means
<tt>^ref1 ref2
</tt> (i.e. not in
671 <tt>ref1
</tt> and in
<tt>ref2
</tt>).
676 A tilde
<tt>~
</tt> and caret
<tt>^</tt> are used to introduce the postfix
677 <em>nth parent
</em> and
<em>peel onion
</em> operation.
682 A colon
<tt>:
</tt> is used as in
<tt>srcref:dstref
</tt> to mean
"use srcref’s
683 value and store it in dstref" in fetch and push operations.
684 It may also be used to select a specific object such as with
685 <em>git cat-file
</em>:
"git cat-file blob v1.3.3:refs.c".
690 at-open-brace
<tt>@{
</tt> is used as a notation to access a reflog entry.
694 <div class=
"paragraph"><p>With the
<tt>--branch
</tt> option, it expands the
“previous branch syntax
”
695 <tt>@{-n}
</tt>. For example,
<tt>@{-
1}
</tt> is a way to refer the last branch you
696 were on. This option should be used by porcelains to accept this
697 syntax anywhere a branch name is expected, so they can act as if you
698 typed the branch name.
</p></div>
700 <h2 id=
"_options">OPTIONS
</h2>
701 <div class=
"sectionbody">
702 <div class=
"dlist"><dl>
711 Controls whether one-level refnames are accepted (i.e.,
712 refnames that do not contain multiple
<tt>/
</tt>-separated
713 components). The default is
<tt>--no-allow-onelevel
</tt>.
721 Interpret
<refname
> as a reference name pattern for a refspec
722 (as used with remote repositories). If this option is
723 enabled,
<refname
> is allowed to contain a single
<tt>*</tt>
724 in place of a one full pathname component (e.g.,
725 <tt>foo/
*/bar
</tt> but not
<tt>foo/bar
*</tt>).
733 Normalize
<em>refname
</em> by removing any leading slash (
<tt>/
</tt>)
734 characters and collapsing runs of adjacent slashes between
735 name components into a single slash. Iff the normalized
736 refname is valid then print it to standard output and exit
737 with a status of
0. (
<tt>--print
</tt> is a deprecated way to spell
738 <tt>--normalize
</tt>.)
743 <h2 id=
"_examples">EXAMPLES
</h2>
744 <div class=
"sectionbody">
745 <div class=
"ulist"><ul>
748 Print the name of the previous branch:
750 <div class=
"listingblock">
751 <div class=
"content">
752 <pre><tt>$ git check-ref-format --branch @{-
1}
</tt></pre>
757 Determine the reference name to use for a new branch:
759 <div class=
"listingblock">
760 <div class=
"content">
761 <pre><tt>$ ref=$(git check-ref-format --normalize
"refs/heads/$newbranch") ||
762 die
"we do not like '$newbranch' as a branch name."</tt></pre>
767 <h2 id=
"_git">GIT
</h2>
768 <div class=
"sectionbody">
769 <div class=
"paragraph"><p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p></div>
772 <div id=
"footnotes"><hr /></div>
774 <div id=
"footer-text">
775 Last updated
2011-
10-
10 16:
42:
04 PDT