Использование git log
для сравнения коммитов
На предыдущем этапе мы использовали команду git status
, чтобы проверить, отстает ли наша локальная ветка от удаленной. Теперь давайте воспользуемся командой git log
, чтобы увидеть фактические коммиты, которые есть на удаленной ветке, но которых нет на нашей локальной.
Команда git log
очень гибкая. Она позволяет вам просматривать историю коммитов различными способами. Чтобы сравнить нашу локальную ветку (HEAD
) с отслеживаемой удаленной веткой (origin/master
), можно использовать следующий синтаксис:
git log HEAD..origin/master
Убедитесь, что вы находитесь в директории ~/project/my-time-machine
:
cd ~/project/my-time-machine
Теперь запустите команду git log
для сравнения веток:
git log HEAD..origin/master
Если на ветке origin/master
есть коммиты, которых нет на вашем локальном HEAD
(который в данный момент указывает на вашу локальную ветку master
), эта команда выведет эти коммиты. В выводе будут показаны детали каждого коммита, включая хэш коммита, автора, дату и сообщение коммита, которые существуют в origin/master
, но отсутствуют в текущей ветке.
Например, если на удаленном репозитории был один новый коммит, вывод может выглядеть так:
commit abcdef1234567890abcdef1234567890abcdef (origin/master)
Author: Another User <[email protected]>
Date: Tue Aug 8 10:00:00 2023 +0000
Add a new feature
Этот вывод четко показывает коммит, который есть на удаленном репозитории, но отсутствует локально. Синтаксис HEAD..origin/master
сообщает Git показать коммиты, которые достижимы из origin/master
, но не из HEAD
.
Использование git log
таким образом - мощный инструмент для понимания различий между ветками и для того, чтобы точно увидеть, какие изменения вы получите, если обновите свою локальную ветку. Он предоставляет больше деталей, чем git status
, о конкретных коммитах, которые вызывают расхождение.
Не забудьте нажать q
, чтобы выйти из режима просмотра лога, если он открылся в постраничном просмотрщике (pager).