Введение
В этом практическом занятии (лабораторной работе) вы узнаете, как проверить, есть ли какие-либо коммиты в репозитории Git. Мы рассмотрим два основных метода: использование команды git log для просмотра полной истории коммитов и использование команды git rev-list --count HEAD для быстрого получения количества коммитов.
Вы начнете с использования команды git log для просмотра подробной истории репозитория с уже существующими коммитами. Затем вы используете команду git rev-list --count HEAD для получения численного количества коммитов. Наконец, вы протестируете эти методы на пустом репозитории, чтобы понять, как они работают, когда коммитов нет.
Запустите git log для проверки истории
На этом этапе мы будем использовать команду git log для просмотра истории коммитов в нашем репозитории Git. Эта команда необходима для понимания хронологии проекта и просмотра внесенных изменений.
Сначала убедитесь, что вы находитесь в директории my-time-machine. Если нет, используйте команду cd для перехода в нее:
cd ~/project/my-time-machine
Теперь запустите команду git log:
git log
Вы должны увидеть вывод, похожий на следующий:
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:00:00 2023 +0000
Send a message to the future
Этот вывод показывает детали коммита, который мы создали в предыдущей лабораторной работе. Каждая запись в журнале представляет собой отдельный коммит и отображает информацию, такую как хэш коммита (уникальный идентификатор), автор, дата и сообщение коммита.
Команда git log - это окно в историю вашего проекта. По мере создания новых коммитов каждый из них будет добавлен в этот журнал, создавая хронологическую запись всех изменений. Это чрезвычайно полезно для отслеживания прогресса, понимания эволюции проекта и даже отладки проблем, так как можно увидеть, когда были внесены конкретные изменения.
Если у вас много коммитов, вывод команды git log может быть очень длинным. Вы можете нажать q, чтобы выйти из просмотра журнала и вернуться к приглашению терминала.
Используйте git rev-list --count HEAD
На этом этапе мы узнаем другой способ быстро узнать, сколько коммитов находится в нашем репозитории, используя команду git rev-list --count HEAD. Это более компактный способ получить только количество коммитов по сравнению с git log.
Убедитесь, что вы по-прежнему находитесь в директории ~/project/my-time-machine.
Теперь запустите следующую команду:
git rev-list --count HEAD
Вы должны увидеть одно число в качестве вывода:
1
Это число представляет общее количество коммитов в текущей ветке (HEAD указывает на вершину текущей ветки, которая в нашем случае - master). Поскольку до сих пор мы сделали только один коммит, вывод равен 1.
Команда git rev-list - это мощный инструмент для перечисления объектов коммитов. В сочетании с опцией --count она просто дает вам общее количество коммитов, достижимых из указанной ссылки (в данном случае - HEAD). Это особенно полезно, когда вам просто нужно быстро узнать, сколько точек сохранения есть в истории вашего проекта.
В то время как git log дает вам подробную информацию о каждом коммите, git rev-list --count предоставляет простой численный обзор длины истории вашего проекта. Обе команды полезны в разных сценариях.
Тестирование пустого репозитория
На этом этапе мы исследуем, что происходит, когда вы запускаете команды git log и git rev-list --count HEAD в репозитории Git, в котором еще нет коммитов. Это поможет вам понять вывод, который вы видели в первой лабораторной работе при первом инициализации репозитория.
Сначала создадим новую пустую директорию и инициализируем в ней репозиторий Git. Убедитесь, что вы находитесь в директории ~/project:
cd ~/project
mkdir empty-repo
cd empty-repo
git init
Вы должны увидеть сообщение, которое указывает на то, что пустой репозиторий Git был инициализирован:
Initialized empty Git repository in /home/labex/project/empty-repo/.git/
Теперь запустим команду git log в этом пустом репозитории:
git log
Вы увидите вывод, похожий на следующий:
fatal: your current branch 'master' does not have any commits yet
Это сообщение четко говорит, что происходит: в текущей ветке (master) нет коммитов. Команда git log требует наличия коммитов для отображения истории, поэтому она сообщает, что нечего показать.
Далее попробуем команду git rev-list --count HEAD:
git rev-list --count HEAD
На этот раз вывод будет таким:
0
Это логично! Поскольку нет коммитов, количество коммитов, достижимых из HEAD, равно нулю.
Сравнение вывода этих команд в пустом репозитории и в нашем репозитории my-time-machine (в котором есть один коммит) помогает закрепить ваше понимание того, что эти команды делают. Команда git log показывает детали коммитов, а git rev-list --count дает простой подсчет. Обе команды точно отражают состояние истории репозитория.
Теперь вы можете удалить директорию empty-repo, так как нам она не понадобится в следующих шагах:
cd ~/project
rm -rf empty-repo
Резюме
В этой лабораторной работе мы научились проверять, есть ли в репозитории Git какие-либо коммиты. Сначала мы использовали команду git log для просмотра подробной истории коммитов, изучив структуру ее вывода, включая хэш коммита, автора, дату и сообщение. Эта команда предоставляет хронологическую запись изменений проекта. Затем мы рассмотрели более компактный метод с использованием команды git rev-list --count HEAD, которая напрямую выводит общее количество коммитов в текущей ветке. Наконец, мы протестировали эти методы на пустом репозитории, чтобы увидеть вывод в случае отсутствия коммитов, тем самым показав, как определить репозиторий без какой-либо истории.



