Documentation / git-name-rev.txton commit Documentation: enable compat-mode for Asciidoctor (b072e0a)
   1git-name-rev(1)
   2===============
   3
   4NAME
   5----
   6git-name-rev - Find symbolic names for given revs
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git name-rev' [--tags] [--refs=<pattern>]
  13               ( --all | --stdin | <commit-ish>... )
  14
  15DESCRIPTION
  16-----------
  17Finds symbolic names suitable for human digestion for revisions given in any
  18format parsable by 'git rev-parse'.
  19
  20
  21OPTIONS
  22-------
  23
  24--tags::
  25        Do not use branch names, but only tags to name the commits
  26
  27--refs=<pattern>::
  28        Only use refs whose names match a given shell pattern.  The pattern
  29        can be one of branch name, tag name or fully qualified ref name. If
  30        given multiple times, use refs whose names match any of the given shell
  31        patterns. Use `--no-refs` to clear any previous ref patterns given.
  32
  33--exclude=<pattern>::
  34        Do not use any ref whose name matches a given shell pattern. The
  35        pattern can be one of branch name, tag name or fully qualified ref
  36        name. If given multiple times, a ref will be excluded when it matches
  37        any of the given patterns. When used together with --refs, a ref will
  38        be used as a match only when it matches at least one --refs pattern and
  39        does not match any --exclude patterns. Use `--no-exclude` to clear the
  40        list of exclude patterns.
  41
  42--all::
  43        List all commits reachable from all refs
  44
  45--stdin::
  46        Transform stdin by substituting all the 40-character SHA-1
  47        hexes (say $hex) with "$hex ($rev_name)".  When used with
  48        --name-only, substitute with "$rev_name", omitting $hex
  49        altogether.  Intended for the scripter's use.
  50
  51--name-only::
  52        Instead of printing both the SHA-1 and the name, print only
  53        the name.  If given with --tags the usual tag prefix of
  54        "tags/" is also omitted from the name, matching the output
  55        of `git-describe` more closely.
  56
  57--no-undefined::
  58        Die with error code != 0 when a reference is undefined,
  59        instead of printing `undefined`.
  60
  61--always::
  62        Show uniquely abbreviated commit object as fallback.
  63
  64EXAMPLE
  65-------
  66
  67Given a commit, find out where it is relative to the local refs. Say somebody
  68wrote you about that fantastic commit 33db5f4d9027a10e477ccf054b2c1ab94f74c85a.
  69Of course, you look into the commit, but that only tells you what happened, but
  70not the context.
  71
  72Enter 'git name-rev':
  73
  74------------
  75% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a
  7633db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940
  77------------
  78
  79Now you are wiser, because you know that it happened 940 revisions before v0.99.
  80
  81Another nice thing you can do is:
  82
  83------------
  84% git log | git name-rev --stdin
  85------------
  86
  87GIT
  88---
  89Part of the linkgit:git[1] suite