Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.43.1 → 2.53.0 no changes
-
2.43.0
2023-11-20
- 2.41.1 → 2.42.4 no changes
-
2.41.0
2023-06-01
- 2.36.1 → 2.40.4 no changes
-
2.36.0
2022-04-18
- 2.18.1 → 2.35.8 no changes
-
2.18.0
2018-06-21
- 2.14.6 → 2.17.6 no changes
-
2.13.7
2018-05-22
- 2.1.4 → 2.12.5 no changes
-
2.0.5
2014-12-17
ОБЗОР
git name-rev [--tags] [--refs=<шаблон>] ( --all | --annotate-stdin | <указатель-на-коммит>… )
ОПИСАНИЕ
Находит символические имена, подходящие для восприятия человеком, для редакций, заданных в любом формате, который может быть разобран git rev-parse.
ПАРАМЕТРЫ
- --tags
-
Не использовать имена веток, а только метки для именования коммитов
- --refs=<pattern>
-
Использовать только ссылки, чьи имена соответствуют заданному шаблону оболочки (shell pattern). Шаблон может быть именем ветки, именем метки или полностью квалифицированным именем ссылки. Если указано несколько раз, использовать ссылки, чьи имена соответствуют любому из заданных шаблонов оболочки. Используйте
--no-refs, чтобы очистить все ранее заданные шаблоны ссылок. - --exclude=<шаблон>
-
Не использовать ссылки, чьи имена соответствуют заданному шаблону оболочки. Шаблон может быть именем ветки, именем метки или полностью квалифицированным именем ссылки. Если указано несколько раз, ссылка будет исключена, если она соответствует любому из заданных шаблонов. При использовании вместе с --refs ссылка будет считаться соответствующей только тогда, когда она соответствует хотя бы одному шаблону --refs и не соответствует ни одному шаблону --exclude. Используйте
--no-exclude, чтобы очистить список шаблонов исключения. - --all
-
Вывести список всех коммитов, достижимых со всех ссылок
- --annotate-stdin
-
Преобразовать стандартный ввод (stdin), заменяя все 40-символьные шестнадцатеричные значения SHA-1 (скажем $hex) на «$hex ($rev_name)». При использовании с --name-only заменить на «$rev_name», полностью опуская $hex. В старых версиях Git этот параметр назывался
--stdin.Например:
$ cat sample.txt Сокращённая редакция 2ae0a9cb82 не будет заменена. Полное имя после замены: 2ae0a9cb8298185a94e5998086f380a355dd8907, в то время как её объект-дерево: 70d105cc79e63b81cfdcb08a15297c23e60b07ad $ git name-rev --annotate-stdin <sample.txt Сокращённая редакция 2ae0a9cb82 не будет заменена. Полное имя после замены: 2ae0a9cb8298185a94e5998086f380a355dd8907 (master), в то время как её объект-дерево: 70d105cc79e63b81cfdcb08a15297c23e60b07ad $ git name-rev --name-only --annotate-stdin <sample.txt Сокращённая редакция 2ae0a9cb82 не будет заменена. Полное имя после замены: master, в то время как её объект-дерево: 70d105cc79e63b81cfdcb08a15297c23e60b07ad
- --name-only
-
Вместо вывода как SHA-1, так и имени, выводить только имя. Если указан с --tags, обычный префикс метки «tags/» также опускается в имени, что больше соответствует выводу
git-describe. - --no-undefined
-
Завершиться с кодом ошибки != 0, когда ссылка не определена, вместо печати
undefined. - --always
-
Показать уникально сокращённый объект коммита в качестве резервного варианта.
ПРИМЕРЫ
Имея коммит, определите, где он находится относительно локальных ссылок. Скажем, кто-то написал вам о том фантастическом коммите 33db5f4d9027a10e477ccf054b2c1ab94f74c85a. Конечно, вы смотрите на коммит, но это говорит вам только о том, что произошло, но не о контексте.
Введите git name-rev:
% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a 33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940
Теперь вы знаете больше, потому что вы знаете, что это произошло за 940 редакций до v0.99.
Ещё одна полезная вещь, которую можно сделать:
% git log | git name-rev --annotate-stdin
GIT
Является частью пакета git[1]