| git-name-rev(1) | |
| =============== | |
| NAME | |
| ---- | |
| git-name-rev - Find symbolic names for given revs | |
| SYNOPSIS | |
| -------- | |
| [verse] | |
| 'git name-rev' [--tags] [--refs=<pattern>] | |
| ( --all | --annotate-stdin | <commit-ish>... ) | |
| DESCRIPTION | |
| ----------- | |
| Finds symbolic names suitable for human digestion for revisions given in any | |
| format parsable by 'git rev-parse'. | |
| OPTIONS | |
| ------- | |
| --tags:: | |
| Do not use branch names, but only tags to name the commits | |
| --refs=<pattern>:: | |
| Only use refs whose names match a given shell pattern. The pattern | |
| can be a branch name, a tag name, or a fully qualified ref name. If | |
| given multiple times, use refs whose names match any of the given shell | |
| patterns. Use `--no-refs` to clear any previous ref patterns given. | |
| --exclude=<pattern>:: | |
| Do not use any ref whose name matches a given shell pattern. The | |
| pattern can be one of branch name, tag name or fully qualified ref | |
| name. If given multiple times, a ref will be excluded when it matches | |
| any of the given patterns. When used together with --refs, a ref will | |
| be used as a match only when it matches at least one --refs pattern and | |
| does not match any --exclude patterns. Use `--no-exclude` to clear the | |
| list of exclude patterns. | |
| --all:: | |
| List all commits reachable from all refs | |
| --annotate-stdin:: | |
| Transform stdin by substituting all the full-length object ID | |
| hexes (say $hex) with "$hex ($rev_name)". When used with | |
| --name-only, substitute with "$rev_name", omitting $hex | |
| altogether. This option was called `--stdin` in older versions | |
| of Git. | |
| + | |
| For example: | |
| + | |
| ----------- | |
| $ cat sample.txt | |
| An abbreviated revision 2ae0a9cb82 will not be substituted. | |
| The full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907, | |
| while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad | |
| $ git name-rev --annotate-stdin <sample.txt | |
| An abbreviated revision 2ae0a9cb82 will not be substituted. | |
| The full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907 (master), | |
| while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad | |
| $ git name-rev --name-only --annotate-stdin <sample.txt | |
| An abbreviated revision 2ae0a9cb82 will not be substituted. | |
| The full name after substitution is master, | |
| while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad | |
| ----------- | |
| --name-only:: | |
| Instead of printing both the object ID and the name, print only | |
| the name. If given with --tags the usual tag prefix of | |
| "tags/" is also omitted from the name, matching the output | |
| of `git-describe` more closely. | |
| --no-undefined:: | |
| Die with error code != 0 when a reference is undefined, | |
| instead of printing `undefined`. | |
| --always:: | |
| Show uniquely abbreviated commit object as fallback. | |
| EXAMPLES | |
| -------- | |
| Given a commit, find out where it is relative to the local refs. Say somebody | |
| wrote you about that fantastic commit 33db5f4d9027a10e477ccf054b2c1ab94f74c85a. | |
| Of course, you look into the commit, but that only tells you what happened, but | |
| not the context. | |
| Enter 'git name-rev': | |
| ------------ | |
| % git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a | |
| 33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940 | |
| ------------ | |
| Now you are wiser, because you know that it happened 940 revisions before v0.99. | |
| Another nice thing you can do is: | |
| ------------ | |
| % git log | git name-rev --annotate-stdin | |
| ------------ | |
| GIT | |
| --- | |
| Part of the linkgit:git[1] suite |