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 форматирует выводимые данные. Вариант <code>oneline</code> удобно использовать для отображения списка коммитов.
--abbrev-commit
Этот параметр сокращает длину идентификатора коммита в выводимых данных. Идентификаторы коммитов длиной в 40 символов может быть неудобно просматривать в узком окне терминала. Этот параметр в сочетании с параметром --pretty=oneline позволяет git log вывести данные в очень компактном виде.
--no-abbrev-commit
Всегда показывать полный 40-символьный идентификатор коммита. При этом --abbrev-commit и любые другие параметры, сокращающие идентификаторы коммитов, такие как формат --oneline, будут игнорироваться.
--oneline
Это краткая форма расширенной команды --pretty=oneline --abbrev-commit
--encoding[=<кодировка>]
В комментариях git log по умолчанию устанавливается кодировка символов UTF-8. Параметр encoding позволяет изменить кодировку символов вывода. Этот параметр удобно использовать при работе с Git в среде с другой кодировкой символов, например в терминале для азиатских языков.>
--expand-tabs=<n>--expand-tabs--no-expand-tabs
Эти опции заменяют символы табуляции пробелами при выводе сообщений журнала. Можно задать значение n, чтобы определить, скольким пробелам равен символ табуляции. Если значение n не указано, символы табуляции будут заменяться 8 пробелами. Параметр --no-expand-tabs даст результат, эквивалентный n=0.
--notes=<ref>--no-notes
В Git есть система заметок, которая позволяет прикреплять к объектам произвольные метаданные «примечаний». Эти данные можно скрыть или отфильтровать при использовании git-show.
--show-signature
Этот параметр подтверждает, что коммит подписан зашифрованной подписью, для чего передает его подкоманде gpg.
Форматы pretty для git-show
Описанный выше параметр --pretty работает с несколькими второстепенными параметрами, влияющими на формат вывода git-show. Эти второстепенные параметры перечислены ниже вместе с примером шаблона.
Однострочный формат
<sha1> <title line>Параметр oneline умещает в одной строке максимально возможный объем информации.
short
commit <sha1>
Author: <author>
<title line>Средняя
commit <sha1>
Author: <author>
Date: <author date>
<title line>
<full commit message>full
commit <sha1>
Author: <author>
Commit: <committer>
<title line>
<full commit message>fuller
commit <sha1>
Author: <author>
AuthorDate: <author date>
Commit: <committer>
CommitDate: <committer date>
<title line>
<full commit message>Эл. почта
From <sha1> <date>
From: <author>
Date: <author date>
Subject: [PATCH] <title line>
<full commit message>raw
При форматировании с параметром raw игнорируются другие прямые параметры форматирования, переданные команде git-show, и коммит выводится в том виде, в котором он сохранен в объекте. Параметр raw игнорирует значения --abrev и --no-abbrev и всегда выводит родительские коммиты.
Формат
Параметр 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 удобно использовать для создания примечаний к исправлениям и отслеживания изменений в репозитории.