made the pack completely portable and wrote relevent bat files to go with it
This commit is contained in:
211
gitportable/mingw64/share/doc/git-doc/git-describe.adoc
Normal file
211
gitportable/mingw64/share/doc/git-doc/git-describe.adoc
Normal file
@@ -0,0 +1,211 @@
|
||||
git-describe(1)
|
||||
===============
|
||||
|
||||
NAME
|
||||
----
|
||||
git-describe - Give an object a human readable name based on an available ref
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...]
|
||||
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<mark>]
|
||||
'git describe' <blob>
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
The command finds the most recent tag that is reachable from a
|
||||
commit. If the tag points to the commit, then only the tag is
|
||||
shown. Otherwise, it suffixes the tag name with the number of
|
||||
additional commits on top of the tagged object and the
|
||||
abbreviated object name of the most recent commit. The result
|
||||
is a "human-readable" object name which can also be used to
|
||||
identify the commit to other git commands.
|
||||
|
||||
By default (without --all or --tags) `git describe` only shows
|
||||
annotated tags. For more information about creating annotated tags
|
||||
see the -a and -s options to linkgit:git-tag[1].
|
||||
|
||||
If the given object refers to a blob, it will be described
|
||||
as `<commit-ish>:<path>`, such that the blob can be found
|
||||
at `<path>` in the `<commit-ish>`, which itself describes the
|
||||
first commit in which this blob occurs in a reverse revision walk
|
||||
from HEAD.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
<commit-ish>...::
|
||||
Commit-ish object names to describe. Defaults to HEAD if omitted.
|
||||
|
||||
--dirty[=<mark>]::
|
||||
--broken[=<mark>]::
|
||||
Describe the state of the working tree. When the working
|
||||
tree matches HEAD, the output is the same as "git describe
|
||||
HEAD". If the working tree has local modification "-dirty"
|
||||
is appended to it. If a repository is corrupt and Git
|
||||
cannot determine if there is local modification, Git will
|
||||
error out, unless `--broken' is given, which appends
|
||||
the suffix "-broken" instead.
|
||||
|
||||
--all::
|
||||
Instead of using only the annotated tags, use any ref
|
||||
found in `refs/` namespace. This option enables matching
|
||||
any known branch, remote-tracking branch, or lightweight tag.
|
||||
|
||||
--tags::
|
||||
Instead of using only the annotated tags, use any tag
|
||||
found in `refs/tags` namespace. This option enables matching
|
||||
a lightweight (non-annotated) tag.
|
||||
|
||||
--contains::
|
||||
Instead of finding the tag that predates the commit, find
|
||||
the tag that comes after the commit, and thus contains it.
|
||||
Automatically implies --tags.
|
||||
|
||||
--abbrev=<n>::
|
||||
Instead of using the default number of hexadecimal digits (which
|
||||
will vary according to the number of objects in the repository with
|
||||
a default of 7) of the abbreviated object name, use <n> digits, or
|
||||
as many digits as needed to form a unique object name. An <n> of 0
|
||||
will suppress long format, only showing the closest tag.
|
||||
|
||||
--candidates=<n>::
|
||||
Instead of considering only the 10 most recent tags as
|
||||
candidates to describe the input commit-ish consider
|
||||
up to <n> candidates. Increasing <n> above 10 will take
|
||||
slightly longer but may produce a more accurate result.
|
||||
An <n> of 0 will cause only exact matches to be output.
|
||||
|
||||
--exact-match::
|
||||
Only output exact matches (a tag directly references the
|
||||
supplied commit). This is a synonym for --candidates=0.
|
||||
|
||||
--debug::
|
||||
Verbosely display information about the searching strategy
|
||||
being employed to standard error. The tag name will still
|
||||
be printed to standard out.
|
||||
|
||||
--long::
|
||||
Always output the long format (the tag, the number of commits
|
||||
and the abbreviated commit name) even when it matches a tag.
|
||||
This is useful when you want to see parts of the commit object name
|
||||
in "describe" output, even when the commit in question happens to be
|
||||
a tagged version. Instead of just emitting the tag name, it will
|
||||
describe such a commit as v1.2-0-gdeadbee (0th commit since tag v1.2
|
||||
that points at object deadbee....).
|
||||
|
||||
--match <pattern>::
|
||||
Only consider tags matching the given `glob(7)` pattern,
|
||||
excluding the "refs/tags/" prefix. If used with `--all`, it also
|
||||
considers local branches and remote-tracking references matching the
|
||||
pattern, excluding respectively "refs/heads/" and "refs/remotes/"
|
||||
prefix; references of other types are never considered. If given
|
||||
multiple times, a list of patterns will be accumulated, and tags
|
||||
matching any of the patterns will be considered. Use `--no-match` to
|
||||
clear and reset the list of patterns.
|
||||
|
||||
--exclude <pattern>::
|
||||
Do not consider tags matching the given `glob(7)` pattern, excluding
|
||||
the "refs/tags/" prefix. If used with `--all`, it also does not consider
|
||||
local branches and remote-tracking references matching the pattern,
|
||||
excluding respectively "refs/heads/" and "refs/remotes/" prefix;
|
||||
references of other types are never considered. If given multiple times,
|
||||
a list of patterns will be accumulated and tags matching any of the
|
||||
patterns will be excluded. When combined with --match a tag will be
|
||||
considered when it matches at least one --match pattern and does not
|
||||
match any of the --exclude patterns. Use `--no-exclude` to clear and
|
||||
reset the list of patterns.
|
||||
|
||||
--always::
|
||||
Show uniquely abbreviated commit object as fallback.
|
||||
|
||||
--first-parent::
|
||||
Follow only the first parent commit upon seeing a merge commit.
|
||||
This is useful when you wish to not match tags on branches merged
|
||||
in the history of the target commit.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
With something like git.git current tree, I get:
|
||||
|
||||
[torvalds@g5 git]$ git describe parent
|
||||
v1.0.4-14-g2414721
|
||||
|
||||
i.e. the current head of my "parent" branch is based on v1.0.4,
|
||||
but since it has a few commits on top of that,
|
||||
describe has added the number of additional commits ("14") and
|
||||
an abbreviated object name for the commit itself ("2414721")
|
||||
at the end.
|
||||
|
||||
The number of additional commits is the number
|
||||
of commits which would be displayed by "git log v1.0.4..parent".
|
||||
The hash suffix is "-g" + an unambiguous abbreviation for the tip commit
|
||||
of parent (which was `2414721b194453f058079d897d13c4e377f92dc6`). The
|
||||
length of the abbreviation scales as the repository grows, using the
|
||||
approximate number of objects in the repository and a bit of math
|
||||
around the birthday paradox, and defaults to a minimum of 7.
|
||||
The "g" prefix stands for "git" and is used to allow describing the version of
|
||||
a software depending on the SCM the software is managed with. This is useful
|
||||
in an environment where people may use different SCMs.
|
||||
|
||||
Doing a 'git describe' on a tag-name will just show the tag name:
|
||||
|
||||
[torvalds@g5 git]$ git describe v1.0.4
|
||||
v1.0.4
|
||||
|
||||
With --all, the command can use branch heads as references, so
|
||||
the output shows the reference path as well:
|
||||
|
||||
[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2
|
||||
tags/v1.0.0-21-g975b
|
||||
|
||||
[torvalds@g5 git]$ git describe --all --abbrev=4 HEAD^
|
||||
heads/lt/describe-7-g975b
|
||||
|
||||
With --abbrev set to 0, the command can be used to find the
|
||||
closest tagname without any suffix:
|
||||
|
||||
[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2
|
||||
tags/v1.0.0
|
||||
|
||||
Note that the suffix you get if you type these commands today may be
|
||||
longer than what Linus saw above when he ran these commands, as your
|
||||
Git repository may have new commits whose object names begin with
|
||||
975b that did not exist back then, and "-g975b" suffix alone may not
|
||||
be sufficient to disambiguate these commits.
|
||||
|
||||
|
||||
SEARCH STRATEGY
|
||||
---------------
|
||||
|
||||
For each commit-ish supplied, 'git describe' will first look for
|
||||
a tag which tags exactly that commit. Annotated tags will always
|
||||
be preferred over lightweight tags, and tags with newer dates will
|
||||
always be preferred over tags with older dates. If an exact match
|
||||
is found, its name will be output and searching will stop.
|
||||
|
||||
If an exact match was not found, 'git describe' will walk back
|
||||
through the commit history to locate an ancestor commit which
|
||||
has been tagged. The ancestor's tag will be output along with an
|
||||
abbreviation of the input commit-ish's SHA-1. If `--first-parent` was
|
||||
specified then the walk will only consider the first parent of each
|
||||
commit.
|
||||
|
||||
If multiple tags were found during the walk then the tag which
|
||||
has the fewest commits different from the input commit-ish will be
|
||||
selected and output. Here fewest commits different is defined as
|
||||
the number of commits which would be shown by `git log tag..input`
|
||||
will be the smallest number of commits possible.
|
||||
|
||||
BUGS
|
||||
----
|
||||
|
||||
Tree objects as well as tag objects not pointing at commits, cannot be described.
|
||||
When describing blobs, the lightweight tags pointing at blobs are ignored,
|
||||
but the blob is still described as <commit-ish>:<path> despite the lightweight
|
||||
tag being favorable.
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Reference in New Issue
Block a user