X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fgit-check-ref-format.txt;h=13a5f43049c25e1df3bcbcbbed482acce0cebc8b;hb=3742506578dda5de2fe97e403f04150a85ffef17;hp=636e9516b09674d8d40516e1015931cacc54f210;hpb=622ef9df199cdbc11ff30e1d92324c1abe3f89cb;p=git.git diff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt index 636e9516..13a5f430 100644 --- a/Documentation/git-check-ref-format.txt +++ b/Documentation/git-check-ref-format.txt @@ -3,7 +3,7 @@ git-check-ref-format(1) NAME ---- -git-check-ref-format - Make sure ref name is well formed. +git-check-ref-format - Make sure ref name is well formed SYNOPSIS -------- @@ -19,20 +19,23 @@ 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: -. It could be named hierarchically (i.e. separated with slash - `/`), but each of its component cannot begin with a dot `.`; +. It can include slash `/` for hierarchical (directory) + grouping, but no slash-separated component can begin with a + dot `.`; . It cannot have two consecutive dots `..` anywhere; . It cannot have ASCII control character (i.e. bytes whose values are lower than \040, or \177 `DEL`), space, tilde `~`, - caret `{caret}`, or colon `:` anywhere; + caret `{caret}`, colon `:`, question-mark `?`, asterisk `*`, + or open bracket `[` anywhere; . It cannot end with a slash `/`. These rules makes it easy for shell script based tools to parse -refnames, and also avoids ambiguities in certain refname -expressions (see gitlink:git-rev-parse[1]). Namely: +refnames, pathname expansion by the shell when a refname is used +unquoted (by mistake), and also avoids ambiguities in certain +refname expressions (see gitlink:git-rev-parse[1]). Namely: . double-dot `..` are often used as in `ref1..ref2`, and in some context this notation means `{caret}ref1 ref2` (i.e. not in @@ -43,6 +46,8 @@ expressions (see gitlink:git-rev-parse[1]). Namely: . colon `:` is used as in `srcref:dstref` to mean "use srcref\'s value and store it in dstref" in fetch and push operations. + It may also be used to select a specific object such as with + gitlink:git-cat-file[1] "git-cat-file blob v1.3.3:refs.c". GIT