git-check-ref-format(1)
=======================

NAME
----
git-check-ref-format - Ensures that a reference name is well formed

SYNOPSIS
--------
[verse]
'git check-ref-format' [--normalize]
       [--[no-]allow-onelevel] [--refspec-pattern]
       <refname>
'git check-ref-format' --branch <branchname-shorthand>

DESCRIPTION
-----------
Checks if a given 'refname' is acceptable, and exits with a non-zero
status if it is not.

A reference is used in Git to specify branches and tags.  A
branch head is stored in the `refs/heads` hierarchy, while
a tag is stored in the `refs/tags` hierarchy of the ref namespace
(typically in `$GIT_DIR/refs/heads` and `$GIT_DIR/refs/tags`
directories or, as entries in file `$GIT_DIR/packed-refs`
if refs are packed by `git gc`).

Git imposes the following rules on how references are named:

. They can include slash `/` for hierarchical (directory)
  grouping, but no slash-separated component can begin with a
  dot `.` or end with the sequence `.lock`.

. They must contain at least one `/`. This enforces the presence of a
  category like `heads/`, `tags/` etc. but the actual names are not
  restricted.  If the `--allow-onelevel` option is used, this rule
  is waived.

. They cannot have two consecutive dots `..` anywhere.

. They cannot have ASCII control characters (i.e. bytes whose
  values are lower than \040, or \177 `DEL`), space, tilde `~`,
  caret `^`, or colon `:` anywhere.

. They cannot have question-mark `?`, asterisk `*`, or open
  bracket `[` anywhere.  See the `--refspec-pattern` option below for
  an exception to this rule.

. They cannot begin or end with a slash `/` or contain multiple
  consecutive slashes (see the `--normalize` option below for an
  exception to this rule)

. They cannot end with a dot `.`.

. They cannot contain a sequence `@{`.

. They cannot be the single character `@`.

. They cannot contain a `\`.

These rules make it easy for shell script based tools to parse
reference names, pathname expansion by the shell when a reference name is used
unquoted (by mistake), and also avoids ambiguities in certain
reference name expressions (see linkgit:gitrevisions[7]):

. A double-dot `..` is often used as in `ref1..ref2`, and in some
  contexts this notation means `^ref1 ref2` (i.e. not in
  `ref1` and in `ref2`).

. A tilde `~` and caret `^` are used to introduce the postfix
  'nth parent' and 'peel onion' operation.

. A 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
  'git cat-file': "git cat-file blob v1.3.3:refs.c".

. at-open-brace `@{` is used as a notation to access a reflog entry.

With the `--branch` option, it expands the ``previous branch syntax''
`@{-n}`.  For example, `@{-1}` is a way to refer the last branch you
were on.  This option should be used by porcelains to accept this
syntax anywhere a branch name is expected, so they can act as if you
typed the branch name.

OPTIONS
-------
--[no-]allow-onelevel::
	Controls whether one-level refnames are accepted (i.e.,
	refnames that do not contain multiple `/`-separated
	components).  The default is `--no-allow-onelevel`.

--refspec-pattern::
	Interpret <refname> as a reference name pattern for a refspec
	(as used with remote repositories).  If this option is
	enabled, <refname> is allowed to contain a single `*`
	in place of a one full pathname component (e.g.,
	`foo/*/bar` but not `foo/bar*`).

--normalize::
	Normalize 'refname' by removing any leading slash (`/`)
	characters and collapsing runs of adjacent slashes between
	name components into a single slash.  Iff the normalized
	refname is valid then print it to standard output and exit
	with a status of 0.  (`--print` is a deprecated way to spell
	`--normalize`.)


EXAMPLES
--------

* Print the name of the previous branch:
+
------------
$ git check-ref-format --branch @{-1}
------------

* Determine the reference name to use for a new branch:
+
------------
$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch") ||
die "we do not like '$newbranch' as a branch name."
------------

GIT
---
Part of the linkgit:git[1] suite
