Как просмотреть историю проекта с помощью журнала Git

Как просмотреть историю проекта с помощью журнала Git

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





В git журнал команда огромна, самая большая из всех обычных команд Git. Его руководство насчитывает более 2500 строк. К счастью, git журнал обеспечивает большую часть своего наиболее полезного поведения с помощью всего нескольких ключевых параметров.





Базовое ведение журнала с поведением по умолчанию

По умолчанию, git журнал показывает список коммитов в обратном хронологическом порядке. Каждая фиксация включает свой хэш, автора, дату и сообщение фиксации:





Команда использует пейджер (например, меньше, больше), чтобы показать полный вывод, чтобы вы могли легко перемещаться по результатам. Вы можете настроить Git для использования любой программы по вашему выбору, например, самого пейджера.

Вот некоторые данные журнала git от репозиторий исходного кода git сам:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

Результат начинается с хэша фиксации ( 670 ...), за которым следует список ветвей, которые в настоящее время указывают на этот коммит ( ГОЛОВА -> мастер , так далее.)

почему мошенники хотят подарочные карты

Следующая строка описывает автора этого коммита с указанием его имени и адреса электронной почты.





Полная дата и время фиксации следуют в следующей строке.

Наконец, появится полное содержание сообщения о фиксации. Вы можете контролировать большую часть всего остального, что предлагает git log, с помощью параметров командной строки. Есть два основных типа опций:





  • Форматирование, которое определяет, как Git отображает каждую фиксацию.
  • Фильтрация, которая определяет, какие коммиты git журнал включает в себя.

В дополнение к параметрам командной строки git log принимает аргументы, которые определяют файлы, коммиты, ветки или другие типы ссылок. Они применяют дополнительную фильтрацию.

Форматирование вывода журнала Git

Одна из самых простых настроек - это --одна линия вариант, который дает очень краткий вывод:

git log --oneline

Каждая строка в журнале теперь содержит только сокращенный хэш фиксации и тему сообщения фиксации. Это отличный способ получить обзор последних коммитов проекта:

К сожалению, без другого контекста эта информация не всегда так полезна. Это может дать вам смутное представление о проекте, но в нем отсутствуют даты и другая полезная информация об авторах и файлах.

Просмотр ветвящегося графа

В --граф опция позволяет визуализировать отношения между ветвями. Это очень просто, но может помочь распутать сложную историю.

git log --oneline --graph

Связанный: Как создать новую ветку в Git

Индивидуальный красивый вывод

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

как найти IP-адрес для сервера minecraft
git log --pretty=short

По сути то же самое, что и git журнал без даты или полного сообщения:

git log --pretty=oneline

Эквивалентно git log --oneline .

git log --pretty=fuller

Включает много деталей. Он даже разделяет автора и коммиттера, которые теоретически могут быть разными людьми:

С формат: вариант, вы можете предоставить строку, содержащую любой контент, который вы хотите, включая заполнители, которые заменяются различными данными. Вот несколько примеров заполнителей:

  • %ЧАС зафиксировать хеш
  • %час сокращенный хеш фиксации
  • дата автора
  • %С участием дата автора, родственник
  • % s зафиксировать тему сообщения
  • % b зафиксировать тело сообщения
  • %п сокращенные родительские хэши

Вы можете добавить к выводу фиксированные символы и раскрасить его. В этом примере также показан вариант формата даты:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Обратите внимание, что дата заключена в скобки. Какое бы форматирование вы ни выбрали, если вы хотите, чтобы вывод был полезен в конвейере или для других форм обработки текста, вам следует подумать о том, как разграничить каждую часть вывода.

Отображение различий в журнале

Важная деталь при просмотре истории репозитория - это сами различия. В конце концов, они представляют, что действительно изменилось в коде! Для начала вы можете получить сводку изменений вместе с каждой фиксацией, используя --shortstat :

git log --shortstat

Это добавляет строку вроде:

1 file changed, 48 insertions(+), 2 deletions(-)

Внизу каждого коммита. Вы часто увидите такую ​​сводку - например, на страницах GitHub - и это полезный способ быстро оценить объем конкретной фиксации. Для получения более подробной информации вы можете включить полный вывод патча (diffs), используя -п флаг:

git log -p

Фильтрация вывода журнала Git

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

Ограничение по сумме

Если вы просто хотите обрезать результаты, чтобы отобразить несколько последних коммитов, используйте -[количество] синтаксис:

git log -2

Ограничение по дате

Чтобы ограничить набор коммитов заданным диапазоном дат, используйте --поскольку ( --после ) а также --до ( --до ) параметры. Каждый из них имеет дату в формате ISO 8601. Вы можете использовать либо --поскольку или --до сами по себе или оба вместе, чтобы указать диапазон. Варианты --после а также --до синонимы.

git log --since='2021-01-01' --until='2021-05-01'

Ограничение по файлу

Журнал Git может сосредоточиться на конкретном файле, а не на каждом файле в вашем репозитории. Это отлично подходит для того, чтобы помочь вам узнать, как конкретный файл изменился с течением времени. Просто добавьте имя файла в конец вашей команды git:

git log filename

Вы увидите только те коммиты, которые затронули имя файла .

Различия между филиалами

При просмотре журнала ветки у вас могут быть особые требования. Например, вместо того, чтобы видеть всю историю, вы можете просто посмотреть, что изменилось в этой конкретной ветке. Журнал Git может помочь через ref1..ref2 синтаксис. Вы можете использовать три немного разных подхода:

  1. Просмотрите коммиты, которые находятся в главной, но не в ветке: git log --oneline origin/branch..origin/main
  2. Просмотрите коммиты, которые находятся в ветке, но не в основном: git log --oneline origin/ main ..origin/ branch
  3. Просмотр коммитов, которые существуют только в ветке или основной: git log --oneline origin/branch ... origin/main

Различия между двумя тегами

Так же, как вы можете просматривать историю между ветками, используя ref1..ref2 синтаксис, вы также можете просматривать историю между тегами таким же образом. В конце концов, и теги, и ветки являются справочными.

git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0

Если вы готовите примечания к выпуску для более крупного проекта, git shortlog должен быть вашим первым портом захода. Он создает список авторов с темами коммитов рядом с ними. Вы можете передать ему ссылочный диапазон, чтобы ограничить историю аналогично git log:

git shortlog v2.32.0-rc3..v2.32.0

В команда git show даже более универсален, чем git журнал . Он может работать с тегами и другими типами объектов git помимо истории фиксации. У него много общего с git журнал , но он вам понадобится только в том случае, если вам нужно углубиться в детали более низкого уровня.

Обзор прошлого с помощью журнала Git

Git log - сложная команда, но ее основные параметры могут быть полезны. Просмотр истории репозитория - отличный способ понять, как часто происходят изменения и сколько людей их вносят. Если вы хорошо разбираетесь в истории проекта, у вас будет отличная возможность внести в него свой вклад.

Amazon Prime Video отключить автовоспроизведение
Делиться Делиться Твитнуть Эл. адрес Присоединяйтесь к тенденции социального кодирования и вносите свой вклад в репозитории GitHub

Хотите поупражняться в программировании и помочь проектам с открытым исходным кодом? Вот как внести свой вклад в GitHub.

Читать далее
Похожие темы
  • Программирование
  • GitHub
  • Советы по кодированию
Об авторе Бобби Джек(Опубликовано 58 статей)

Бобби - энтузиаст технологий, проработавший разработчиком программного обеспечения большую часть двух десятилетий. Он увлечен играми, работает редактором обзоров в Switch Player Magazine и занимается всеми аспектами онлайн-публикации и веб-разработки.

Ещё от Bobby Jack

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться