Русский ▾ Topics ▾ Latest version ▾ git-name-rev last updated in 2.43.0

НАЗВАНИЕ

git-name-rev - Найти символические имена для заданных редакций

ОБЗОР

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]