path: root/Documentation/git-check-ref-format.txt
diff options
authorJunio C Hamano <>2005-10-17 05:41:59 (GMT)
committerJunio C Hamano <>2005-10-17 05:41:59 (GMT)
commit622ef9df199cdbc11ff30e1d92324c1abe3f89cb (patch)
tree41b17923dd0d4ed2139d32e67085651c029c464d /Documentation/git-check-ref-format.txt
parentb8041fe4d84bc75212cb6161d508fd1e9d2203ab (diff)
ref-format documentation.
Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'Documentation/git-check-ref-format.txt')
1 files changed, 50 insertions, 0 deletions
diff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt
new file mode 100644
index 0000000..636e951
--- /dev/null
+++ b/Documentation/git-check-ref-format.txt
@@ -0,0 +1,50 @@
+git-check-ref-format - Make sure ref name is well formed.
+'git-check-ref-format' <refname>
+Checks if a given 'refname' 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:
+. It could be named hierarchically (i.e. separated with slash
+ `/`), but each of its component cannot 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;
+. 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:
+. double-dot `..` are often used as in `ref1..ref2`, and in some
+ context this notation means `{caret}ref1 ref2` (i.e. not in
+ ref1 and in ref2).
+. tilde `~` and caret `{caret}` are used to introduce postfix
+ 'nth parent' and 'peel onion' operation.
+. colon `:` is used as in `srcref:dstref` to mean "use srcref\'s
+ value and store it in dstref" in fetch and push operations.
+Part of the gitlink:git[7] suite