.\"Generated by db2man.xsl. Don't modify this, modify the source. .de Sh \" Subsection .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Ip \" List item .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .TH "GIT-CHECK-REF-FORM" 1 "" "" "" .SH NAME git-check-ref-format \- Make sure ref name is well formed .SH "SYNOPSIS" \fIgit\-check\-ref\-format\fR .SH "DESCRIPTION" Checks if a given \fIrefname\fR is acceptable, and exits non\-zero if it is not\&. A reference is used in git to specify branches and tags\&. A branch head is stored under $GIT_DIR/refs/heads directory, and a tag is stored under $GIT_DIR/refs/tags directory\&. git imposes the following rules on how refs are named: .TP 3 1. It could be named hierarchically (i\&.e\&. separated with slash /), but each of its component cannot begin with a dot \&.; .TP 2. It cannot have two consecutive dots \&.\&. anywhere; .TP 3. It cannot have ASCII control character (i\&.e\&. bytes whose values are lower than \\040, or \\177 DEL), space, tilde ~, caret ^, colon :, question\-mark ?, asterisk *, or open bracket [ anywhere; .TP 4. It cannot end with a slash /\&. .LP These rules makes it easy for shell script based tools to parse refnames, pathname expansion by the shell when a refname is used unquoted (by mistake), and also avoids ambiguities in certain refname expressions (see \fBgit\-rev\-parse\fR(1))\&. Namely: .TP 3 1. double\-dot \&.\&. are often used as in ref1\&.\&.ref2, and in some context this notation means ^ref1 ref2 (i\&.e\&. not in ref1 and in ref2)\&. .TP 2. tilde ~ and caret ^ are used to introduce postfix \fInth parent\fR and \fIpeel onion\fR operation\&. .TP 3. colon : is used as in srcref:dstref to mean "use srcref's value and store it in dstref" in fetch and push operations\&. .LP .SH "GIT" Part of the \fBgit\fR(7) suite