SYNOPSIS

git-rev-parse [ --option ] <args>…

DESCRIPTION

Many git Porcelainish commands take mixture of flags (i.e. parameters that begin with a dash -) and parameters meant for underlying git-rev-list command they use internally and flags and parameters for other commands they use as the downstream of git-rev-list. This command is used to distinguish between them.

OPTIONS

--revs-only

Do not output flags and parameters not meant for git-rev-list command.

--no-revs

Do not output flags and parameters meant for git-rev-list command.

--flags

Do not output non-flag parameters.

--no-flags

Do not output flag parameters.

--default <arg>

If there is no parameter given by the user, use <arg> instead.

--verify

The parameter given must be usable as a single, valid object name. Otherwise barf and abort.

--sq

Usually the output is made one line per flag and parameter. This option makes output a single line, properly quoted for consumption by shell. Useful when you expect your parameter to contain whitespaces and newlines (e.g. when using pickaxe -S with git-diff-*).

--not

When showing object names, prefix them with ^ and strip ^ prefix from the object names that already have one.

--symbolic

Usually the object names are output in SHA1 form (with possible ^ prefix); this option makes them output in a form as close to the original input as possible.

--all

Show all refs found in $GIT_DIR/refs.

--show-prefix

When the command is invoked from a subdirectory, show the path of the current directory relative to the top-level directory.

--show-cdup

When the command is invoked from a subdirectory, show the path of the top-level directory relative to the current directory (typically a sequence of "../", or an empty string).

--git-dir

Show $GIT_DIR if defined else show the path to the .git directory.

--short, --short=number

Instead of outputting the full SHA1 values of object names try to abbriviate them to a shorter unique name. When no length is specified 7 is used. The minimum length is 4.

--since=datestring, --after=datestring

Parses the date string, and outputs corresponding --max-age= parameter for git-rev-list command.

--until=datestring, --before=datestring

Parses the date string, and outputs corresponding --min-age= parameter for git-rev-list command.

<args>…

Flags and parameters to be parsed.

SPECIFYING REVISIONS

A revision parameter typically, but not necessarily, names a commit object. They use what is called an extended SHA1 syntax.

git-rev-parse also accepts a prefix ^ to revision parameter, which is passed to git-rev-list. Two revision parameters concatenated with .. is a short-hand for writing a range between them. I.e. r1..r2 is equivalent to saying ^r1 r2

Here is an illustration, by Jon Loeliger. Both node B and C are a commit parents of commit node A. Parent commits are ordered left-to-right.

G   H   I   J
 \ /     \ /
  D   E   F
   \  |  /
    \ | /
     \|/
      B     C
       \   /
        \ /
         A
A =      = A^0
B = A^   = A^1     = A~1
C = A^2  = A^2
D = A^^  = A^1^1   = A~2
E = B^2  = A^^2
F = B^3  = A^^3
G = A^^^ = A^1^1^1 = A~3
H = D^2  = B^^2    = A^^^2  = A~2^2
I = F^   = B^3^    = A^^3^
J = F^2  = B^3^2   = A^^3^2

Author

Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net>

Documentation

Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT

Part of the git(7) suite