git show
Что такое git-show?
git-show
— это утилита командной строки, которая используется для просмотра подробных данных об объектах Git, например больших двоичных объектах, деревьях, тегах и коммитах. Поведение git-show
различается в зависимости от типа объекта.
Для тегов отображаются комментарии к тегам и другие объекты, включенные в тег. Для деревьев отображаются имена и содержимое объектов дерева. Для больших двоичных объектов отображается непосредственно содержимое этих объектов. Для коммитов отображаются комментарии журнала коммитов и выходные данные сравнения, показывающие изменения в коммите.
Все объекты Git вызываются с помощью ссылок. По умолчанию команда git-show
выполняется в отношении ссылки HEAD. Ссылка HEAD всегда указывает на последний коммит текущей ветки. Поэтому можно использовать git-show
для просмотра комментариев журнала и выходных данных сравнения последнего коммита.
Параметры git-show
<объект>…
Можно передать ссылку на объект или список объектов, чтобы проанализировать эти объекты. Если объекты явным образом не переданы, для git-show
по умолчанию выводит данные для ссылки HEAD.
--pretty[=<формат>]
Для параметра pretty указывается дополнительное значение формата, которое может быть следующим: oneline, short, medium, full, fuller, email, raw
и format:<строка>
. При пропуске этого параметра устанавливается значение формата по умолчанию medium
. Каждый параметр формата представляет собой шаблон, по которому Git форматирует данные вывода. Параметр oneline
удобно использовать для отображения списка коммитов
--abbrev-commit
Этот параметр сокращает длину идентификатора коммита в выводе. Идентификаторы имеют длину 40 символов, поэтому их неудобно просматривать в узком окне терминала. Этот параметр в сочетании с параметром --pretty=oneline
позволяет сделать вывод команды git log
компактным.
--no-abbrev-commit
Всегда отображается полный идентификатор коммита длиной 40 символов. Параметр --abbrev-commit
игнорируется, равно как и другие параметры, которые сокращают идентификатор коммита, например --oneline format
--oneline
Это ярлык расширенной команды --pretty=oneline --abbrev-commit
--encoding[=
Кодировка символов в комментариях Git log по умолчанию — UTF-8. Параметр encoding позволяет изменить кодировку символов вывода. Этот параметр удобно использовать при работе с Git в среде с другой кодировкой символов, например, в терминале для азиатских языков.
>--expand-tabs=
--expand-tabs
--no-expand-tabs
Эти параметры заменяют символы табуляции пробелами в выводе комментариев к журналу. Значение n
определяет, скольким пробелам равен символ табуляции. Если значение n не указано явным образом, символ табуляции равен 8 пробелам. Параметр --no-expand-tabs
эквивалентен n=0
--notes=
--no-notes
В Git существует система примечаний, позволяющая прикреплять к объектам произвольные метаданные note. Эти данные можно скрыть или отфильтровать с помощью команды git-show
.
--show-signature
Этот параметр подтверждает, что коммит подписан зашифрованной подписью, для чего передает его подкоманде gpg.
Форматы pretty для git-show
Описанный выше параметр --pretty
работает с несколькими второстепенными параметрами, влияющими на формат вывода git-show
. Эти второстепенные параметры перечислены ниже вместе с примером шаблона
- oneline
<строка заголовка>
Параметр oneline умещает в одной строке максимально возможный объем информации
- short
commit
Author: <автор>
<строка заголовка>
- medium
commit
Author: <автор>
Date: <дата автора>
<строка заголовка>
<полный комментарий к коммиту>
- full
commit
Author: <автор>
Commit: <разработчик>
<строка заголовка>
<полный комментарий к коммиту>
- fuller
commit
Author: <автор>
AuthorDate: <дата автора>
Commit: <разработчик>
CommitDate: <дата разработчика>
<строка заголовка>
<полный комментарий к коммиту>
- email
From
<дата>
From: <автор>
Date: <дата автора>
Subject: [PATCH] <строка заголовка>
<полный комментарий к коммиту>
- raw
При форматировании с параметром raw игнорируются другие прямые параметры форматирования, переданные командеgit-show
, и коммит выводится в том виде, в котором он сохранен в объекте. Параметр raw игнорирует значения--abrev
и--no-abbrev
и всегда выводит вышестоящие коммиты.
- format:
Параметр format позволяет определить пользовательский формат вывода. Он работает аналогично командеprintf
в языке C. Параметр--pretty=format
использует дополнительное значение строки шаблона. Шаблон имеет доступ к переменным заполнителям, которые заполняются данными из объекта коммита. Эти заполнители перечислены ниже:
• %H: хеш коммита
• %h: сокращенный хеш коммита
• %T: хеш дерева
• %t: сокращенный хеш дерева
• %P: хеши вышестоящих элементов
• %p: сокращенные хеши вышестоящих элементов
• %an: имя автора
• %aN: имя автора
• %ae: электронная почта автора
• %aE: электронная почта автора
• %ad: дата автора (в формате учитывается параметр --date=)
• %aD: дата автора, стиль RFC2822
• %ar: дата автора, относительная
• %at: дата автора, метка времени UNIX
• %ai: дата автора, формат ISO 8601
• %cn: имя разработчика
• %cN: имя разработчика
• %ce: электронная почта разработчика
• %cE: электронная почта разработчика
• %cd: дата разработчика
• %cD: дата разработчика, стиль RFC2822
• %cr: дата разработчика, относительная
• %ct: дата разработчика, метка времени UNIX
• %ci: дата разработчика, формат ISO 8601
• %d: ссылочные имена, например, параметр --decorate команды git-log(1)
• %e: кодировка
• %s: тема
• %f: очищенная строка темы, подходящая для имени файла
• %b: тело
• %N: примечания к коммиту
• %gD: средство выбора reflog, например, refs/stash@{1}
• %gd: сокращенное средство выбора reflog, например, stash@{1}
• %gs: тема reflog
• %Cred: переключение цвета на красный
• %Cgreen: переключение цвета на зеленый
• %Cblue: переключение цвета на синий
• %Creset: сброс цвета
• %C(...): спецификация цвета, как указано в параметре конфигурации color.branch.*
• %m: метка левого края, правого края или границы
• %n: новая строка
• %%: необрабатываемый %
• %x00: печать байта из шестнадцатеричного кода
• %w([[, : переключение свертывания строки аналогично параметру -w команды git-shortlog[, ]]])
Примеры git-show
git show --pretty="" --name-only bd61ad98
Эта команда выводит список всех файлов, задействованных в коммите
git show REVISION:path/to/file
Эта команда выводит конкретную версию файла. Замените элемент REVISON
SHA-хешем Git.
git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783
Отображает тег v2.0.0, а также коммит в 6ef002d74cbbc099e1063728cab14ef1fc49c783
git show commitA...commitD
Выводит все коммиты в диапазоне между commit A
и commit D
Резюме
git-show
— это универсальная команда для анализа объектов в репозитории Git. С ее помощью можно найти конкретные версии определенных файлов. При анализе диапазона коммитов с помощью git-show
выводятся все отдельные коммиты в указанном диапазоне. Команду git-show
удобно использовать для создания примечаний к исправлениям и отслеживания изменений в репозитории.