Сравнение с активными ветками
На этом этапе мы сравним информацию, полученную с помощью команд git log
и git for-each-ref
, и поймем, как они связаны с концепцией "активных" веток.
Убедитесь, что вы по-прежнему находитесь в директории ~/project/my-time-machine
.
Мы уже знаем, что по умолчанию команда git log
показывает историю текущей ветки, а команда git for-each-ref refs/heads/
отображает информацию о всех локальных ветках. В нашем простом репозитории в настоящее время есть только одна ветка - master
, поэтому дата последнего коммита, показанная обеими командами, будет одинаковой.
Давайте снова запустим команду git for-each-ref
, чтобы увидеть вывод еще раз:
git for-each-ref --sort=-committerdate refs/heads/ --format='%(committerdate:short) %(refname:short)'
Вывод:
YYYY-MM-DD master
А также команду git log --oneline
:
git log --oneline
Вывод:
a1b2c3d (HEAD -> master) Send a message to the future
Обе команды подтверждают, что последняя активность (последний коммит) в нашем репозитории произошла на ветке master
, и они показывают дату этого коммита.
В реальном проекте с множеством веток команда git for-each-ref refs/heads/
, отсортированная по дате коммиттера, является быстрым способом определить, какие ветки были недавно активными. Ветки, находящиеся в начале списка, являются теми, над которыми работали последними.
Сравнение этого вывода с выводом команды git log
для конкретных веток помогает понять общую активность в репозитории и конкретную историю отдельных веток.
Например, если у вас есть еще одна ветка с именем feature-x
, вы можете запустить команду git log feature-x --oneline
, чтобы увидеть ее конкретную историю и сравнить дату последнего коммита с датой, показанной командой git for-each-ref
.
Возможность быстро увидеть недавнюю активность по всем веткам очень полезна для менеджеров проектов и руководителей команд, чтобы получить обзор прогресса разработки.