Команды Git

git show

git show: показать детали конкретного коммита, тега или другого объекта (англ. showпоказать).

Команда git show используется для вывода подробной информации о конкретном объекте Git, чаще всего о коммите. Она показывает метаданные коммита (автора, дату, сообщение) вместе с разницей (англ. diff) изменений, внесённых этим коммитом. Эта команда особенно удобна, когда нужно посмотреть, что именно изменилось в конкретном коммите, не сравнивая его с родителем вручную.

По умолчанию git show выводит последний коммит в текущей ветке. Можно указать любой хеш коммита, имя ветки, тег или другую ссылку Git, чтобы посмотреть детали конкретного объекта. Вывод включает сообщение коммита, информацию об авторе, метку времени и унифицированный diff со всеми изменениями, сделанными в этом коммите.

Если вывод git show слишком длинный и не помещается на одном экране, терминал перейдёт в режим постраничного просмотра. Можно прокручивать вывод с помощью стрелок и (или использовать PageUp и PageDown для более быстрой прокрутки). Чтобы выйти из этого режима, нужно нажать q.

Примеры

Посмотреть детали последнего коммита:

git show

Посмотреть детали конкретного коммита по его хешу:

git show 1a2b3c4d

Вывести только сообщение коммита и метаданные без вывода диффа:

git show --no-patch

Посмотреть изменения конкретного файла в коммите:

git show 1a2b3c4d -- path/to/file.js

Разделитель -- сообщает Git, что всё, что идёт после него, нужно воспринимать как путь к файлу, даже если это похоже на имя ветки или тега. Он полностью опционален, но помогает избежать путаницы между именами файлов и ссылками Git.

Вывести только имена файлов, которые были изменены в коммите:

git show --name-only

Разбор вывода

При запуске git show для коммита вывод обычно выглядит так:

Результат:
commit 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t
Author: John Doe <john.doe@example.com>
Date: Mon Jan 15 14:30:25 2024 -0500
Fix navigation bug in mobile view.
Updated CSS media queries to properly handle small screens.
diff --git a/src/components/Navigation.js b/src/components/Navigation.js
index 1c2s3z5..4f5g6h7 100644
--- a/src/components/Navigation.js
+++ b/src/components/Navigation.js
@@ -45,2 +45,6 @@
- display: block;
+ display: none;
+}
+
+@media (max-width: 768px) {
+ .mobile-menu {
+ display: block;
+ }
+}

Этот вывод показывает:

  • Хеш коммита (англ. commit hash): уникальный идентификатор для этого конкретного коммита.
  • Автор (англ. author): кто сделал коммит, включая email.
  • Дата (англ. date): когда был создан коммит.
  • Сообщение коммита (англ. commit message): описание того, какие изменения были внесены и зачем.
  • Разница (англ. diff): сами изменения в файлах, в том же формате, что и у git diff.

Блок с изменениями (diff) следует тем же правилам, что и другие выводы Git diff: строки с префиксом - показывают удалённое, а строки с префиксом + — добавленное.