Title: Theory / Important / CS / Softw / VCS / Git / Describe
Tags: fromMath mathToDef

Fla: describe commitRef
Effect: a string that is somewhat human-readable and will not change describing commitRef
Page: https://git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Inspection-and-Comparison
Prefix: git
Chapter: A3
Section: 6

Page: https://git-scm.com/docs/git-difftool
Syntactic sugar: git describe
Implementation: git describe HEAD

Fla: --dirty
Page: https://git-scm.com/docs/git-describe
Prefix: git describe
Print: describe HEAD. Also add -dirty if working-tree is dirty

Fla: --broken
Page: https://git-scm.com/docs/git-describe
Prefix: git describe
Print: describe HEAD. Also add -broken if working-tree is dirty

Fla: --all
Effect: Use any ref found in refs/ namespace.
Page: https://git-scm.com/docs/git-describe
Prefix: git describe
Extra: This option enables matching any known branch, remote-tracking branch, or lightweight tag.

Fla: --tags
Effect: Instead of using only the annotated tags, use any tag found in refs/tags namespace. This option enables matching a lightweight (non-annotated) tag.
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --contains
Effect: Instead of finding the tag that predates the commit, find the tag that comes after the commit, and thus contains it. Automatically implies --tags.
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --abbrev=<n>
Effect: Uses at least <n> hexadigits in the abbreviation object name
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --candidates=<n>
Effect: Consider <n> candidate of description
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --exact-match
Effect: Only output exact matches (a tag directly references the supplied commit).
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --debug
Effect: Verbosely display information about the searching strategy being employed to standard error. The tag name will still be printed to standard out.
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --long
Effect: Always output the long format (the tag, the number of commits and the abbreviated commit name) even when it matches a tag.
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --match <pattern>
Effect: Only consider tags matching <pattern> (excluding refs/tags/ part)
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --exclude <pattern>
Effect: Do not consider tags matchinhg <pattern>
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --always
Effect: Show uniquely abbreviated commit object as fallback.
Page: https://git-scm.com/docs/git-describe
Prefix: git describe

Fla: --first-parent
Effect: Follow only the first parent commit upon seeing a merge commit.
Page: https://git-scm.com/docs/git-describe
Prefix: git describe
Extra: This is useful when you wish to not match tags on branches merged in the history of the target commit.