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 удобно использовать для создания примечаний к исправлениям и отслеживания изменений в репозитории.

Рекомендовано для вас

Блог Bitbucket

Образовательные программы DevOps

Подробнее о Git

В этом разделе вы найдете другие руководства и ресурсы по Git.