Как использовать Git Log для форматирования истории коммитов?



Git - это инструмент, который помогает систематизировать исходный код ваших приложений и управлять им. Узнайте все о команде git log format history и о том, как ее использовать.

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

Во-первых, я переключаюсь / проверяю ветку «feature1» для удобной и более короткой истории.
Используйте команды -





$cd myProj–Переключиться на проект git

$git checkout feature1–Перейти к ветке «feature1»



1. Форматирование фиксации

1.1 Довольно распечатать содержимое вывода в заданном формате

Синтаксис: git log --pretty [=]

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

1.1.1 –pretty = oneline

Довольно распечатать журнал фиксации в «одной строке»
Команда: git журнал --pretty = oneline
Форматирует вывод по порядку:




Фиксация - История формата журнала Git - Edureka

1.1.2 –pretty = короткий

Отформатируйте вывод фиксации «коротким» в формате:
совершить (refname)
Автор:



1.1.3 –pretty = средний

Команда: git log --pretty = medium
Распечатать вывод фиксации в «среднем» формате:
совершить
Автор :
Дата:


1.1.4 –pretty = полный

Команда: git log --pretty = full
Вывод в формате:
совершить (refname)
Автор:
Фиксация:


1.1.5 –pretty = полный

Команда: git log --pretty = fuller
совершить (refname)
Автор:
AuthorDate :
Фиксация:
CommitDate:


1.1.6 –pretty = электронная почта

Команда: git log --pretty = электронная почта
Распечатать вывод журнала в формате электронной почты:
От
От:
Дата:
Предмет: [ПАТЧ]


1.1.7 –pretty = raw

Команда: git log --pretty = raw
Формат вывода необработанного журнала показывает всю фиксацию точно так, как она хранится в объекте фиксации.
совершить
дерево
родитель
автор
совершить

1.1.8 –format:: Пользовательское форматирование

Формат позволяет указать, какую информацию об объекте фиксации вы хотите распечатать в журнале вывода фиксации.
Давайте рассмотрим различные заполнители, которые эта опция предоставляет точно так же, как функция «C printf» с помощью фрагментов кода:

Команда: git log --pretty = format: '% h% ad | % s% d [% an] '--date = short
Формат вывода:
| [имя автора]

%час = Сокращенные идентификаторы hash-id / sha1commit
%ЧАС = длинные идентификаторы sha-1
% к = дата создания
% s = зафиксировать строку заголовка темы
% d = ссылочный указатель (ветка, тег) имена
% an = имя автора
-Дата = short: печатать только дату, а не время в удобочитаемом формате

Теперь, как насчет того, чтобы сделать этот вывод более удобным для человека, используя цвета.
Команда:
git log --pretty = format: '% C (желтый)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short


Некоторые другие заполнители, используемые в приведенном выше фрагменте кода:
% C (желтый) : Сделайте следующую строку желтой
% Creset : Сбросить следующую строку обратно к цвету по умолчанию (белый)
% Cgreen : изменить следующую строку на зеленую
%Я думаю: Измените следующую строку на красную
% Cblue: Сделайте имя автора синим цветом

Вам не нужно каждый раз запоминать и писать всю команду, просто используйте короткое имя как git псевдоним как показано ниже:
Команда:
git config --global alias.c-hist 'log --pretty = format:'% C (желтый)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short'

«C-hist» представляет собой c индивидуальный история Ори
Итак, как вы могли заметить, я устанавливаю свой глобальный конфигурация git файл со значениями.

читать и писать файл Excel в Java

Теперь, чтобы проверить историю текущей ветки, все, что вам нужно сделать, это запустить команду, например:
Команда: иди с-гист

1.2 –abbrev-commit: сокращение хеш-идентификатора git commit

Команда: git журнал --abbrev-commit
Полное 40-байтовое шестнадцатеричное имя объекта фиксации сокращается до 7-байтов по умолчанию.


Давайте объединим это с '--одна линия‘Вариант для удобного просмотра, например:
Команда: git log --abbrev-commit --oneline

Что еще интереснее, вы также можете указать байтовую длину идентификаторов sha-1 с помощью параметра ‘–abbrev =’, как показано ниже:
Команда: git log --abbrev-commit --abbrev = 5 --oneline



Очевидно, что выделенные идентификаторы sha-1 уменьшены до 5-байтового размера.

1.3 –no-abbrev-commit

Показать полное 40-байтовое шестнадцатеричное имя объекта фиксации.
Это отрицает –Abbrev-commit и те варианты, которые подразумевают
это такое как «–oneline».
Команда: git log --pretty = oneline --no-abbrev-commit



1.4 - относительная дата

Команда: git журнал - относительная дата

Пожалуйста, обратите внимание, это выделенное время может быть изменено в зависимости от времени выполнения команды в вашей системе.

1.5 –дата =

Вы также можете отформатировать дату журналов фиксации в любом из следующих вариантов формата:

1.5.1 –дата = относительная

Команда :git log --date = относительный
Это синоним приведенной выше команды «git журнал - относительная дата»И печатает те же коммиты.

1.5.2 –date = местное

Команда : git log --date = local

1.5.3 –date = iso

Команда: git log --date = iso

1.5.4 –date = iso-strict

Команда: git log --date = iso-strict

1.5.5 –date = rfc

Команда: git log --date = rfc

1.5.6 –date = короткий

Команда: git log --date = короткий

1.5.7 –date = raw (показывает дату в секундах)

Команда: git log --date = raw
Выведите время в секундах с момента unix epoc время (01 января 1970 г.), за которым следует часовой пояс.

1.5.8 –date = человек

Команда: git log --date = человек

1.5.9 –date = unix

Показывает дату как unix epoc (UTC) время.
Команда: git log --date = unix

1.6 - родители

Выведите также родителей каждого коммита в формате:
Команда: git log --parents
Команда вывода Oneliner: git log --parents --oneline

Следует отметить:
C366419 является фиксацией слияния, следовательно, имеет 2 родителя соответственно: Feb30c и 4920adc
Точно так же

1d67b50 это фиксация слияния, возникшая в результате слияния f2ff2e4 и abb694b
078f9f5 это коммит слияния, созданный слиянием 9a2412e и ab3a5e5
В то время как, 86792c6 это начальная фиксация, следовательно, нет родителя.

1,7 –дети

Распечатайте также дочерние элементы в форме
Команда: git log --children --oneline

Заметка :
006b9ce - это последняя фиксация, поэтому у нее еще нет дочернего объекта фиксации. Следующее изменение, которое вы сделаете и зафиксируете в этой ветке, будет дочерним объектом фиксации этого последнего идентификатора sha-1.

1.8 –граф

Нарисуйте текстовое графическое представление истории коммитов перед идентификаторами sha-1.
Команда: git log --graph
Улучшенный вывод oneliner: git log --graph --oneline


Это позволяет понять, когда, как и почему другие ветки были объединены в текущую извлеченную ветку.

1.9 –show-linear-break

Команда: git log --show-linear-break
Это полезная команда для обозначения барьера между двумя последовательными коммитами, которые не принадлежат линейной ветви, другими словами, коммитами, пришедшими из разных ветвей.


Сравните вышеприведенный вывод с выводом команды «git log –graph», который ясно показывает, как были объединены коммиты «linear-break».

Бонус: резюмируйте вывод журнала git: «git shortlog»

git shortlogКоманда ‘классифицирует журналы коммитов по авторам и печатает обзорную сводку с указанием коммитов, сделанных каждым автором.
Команда: git log shortlog

Команда : git log shortlog -s
-s означает –summary, подавить описание фиксации и просто вывести количество коммитов каждым автором, например:

Кроме того, вы также можете форматировать вывод, используя те же заполнители, которые обсуждались в разделе «--pretty = формат‘Вариант
Попробуйте команду: git shortlog --format = '% h | % s '

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

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

Итак, на этом мы подошли к концуИстория формата журнала Gitблог, надеюсь, вы нашли его информативным.

В этом посте мы узнали о некоторых методах форматирования, которые позволяют распечатать информацию о проекте более настраиваемым и удобным для пользователя способом. Теперь вы должны знать, как эффективно использовать параметры команды «git log» для извлечения любой необходимой информации об исходном коде из вашей истории фиксации. На этом мы подошли к концу этой статьи, надеюсь, вы нашли ее информативной.

Если вам интересно узнать больше, вы можете проверить это от Edureka, надежной компании онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру. Учебный курс Edureka DevOps Certification Training помогает учащимся понять, что такое DevOps, и получить опыт работы с различными процессами и инструментами DevOps, такими как Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack и GIT для автоматизации нескольких этапов в SDLC.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этой статьи «История формата журнала Git», и мы свяжемся с вами.