Блог переехал. Актуальная версия поста находится по адресу: http://aakinshin.net/ru/blog/git/log/.
Изучение истории коммитов — важная составляющая работы с репозиторием. Увы, ввиду ветвления с этой историей не всегда просто разобраться. Обычно я для этой цели пользуюсь различными визуальными оболочками, но не всегда есть такая возможность. Временами приходится пользоваться средствами консоли, а именно командой git log. Основы работы с этой командой можно почитать в чудесной книге ProGit.
git log имеет множество различных полезных параметров. Рассмотрим несколько примеров их использования.Древовидный вид
git log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --allВыводим полный граф коммитов c сокращёнными хешами, ссылками на коммиты и относительной датой. Используемый формат: синий сокращённый хеш коммита, зелёная дата, белые сообщение и автор, жёлтые ссылки на коммит.
git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --allВыводим полный граф коммитов c сокращёнными хешами, ссылками на коммиты и абсолютной датой. Используемый формат: синий сокращённый хеш коммита, голубая абсолютная дата, зелёная относительная дата, жёлтые ссылки на коммит, перевод строки, белые сообщение и автор.
git log --graph --oneline --allВыводим полный граф коммитов, отводя по одной строке на коммит.
git log --graph --date-order --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=shortВыводим полный граф коммитов c сортировкой по дате, отображаемой в краткой форме. Используемый формат: сокращённый хеш, дата, автор, зелёные ссылки на коммит, сообщение.
Линейный вид
git logВывод списка коммитов с параметрами по умолчанию.
git log -pВыводим список коммитов и показываем diff для каждого.
git log --statВыводим список коммитов и показываем статистику по каждому.
git log --pretty=onelineВыводим список коммитов по одному на строчке.
git log --pretty=format:"%h - %an, %ar : %s"Выводим список коммитов с использованием следуюещго формата: сокращённый хеш коммита, автор, относительная дата, сообщение.
Визуальный интерфейс
Если есть возможность, то всё таки коммиты приятнее изучать через специализированный интерфейс, а не из консоли. Лично я очень люблю GitExtensions:
Также удобно использовать встроенную утилиту gitk:
Полезные параметры
Все параметры командыgit log не нужны, но некоторые самые полезные хорошо бы помнить. Приведу несколько примеров использования ходовых параметров.
--graphПоказывать древовидную структуру графа истории в ASCII-виде-5Посмотреть последних пять коммитов--skip=3Пропустить три коммита--pretty=onelineОтводить по одной строчке на коммит--since="today"Показать коммиты за сегодня--since=2.weeksПоказать коммиты за последние две недели-pПоказывать diff каждого коммита--decorateПоказывать ссылки на этот коммит--statПоказывать подробную статистику по каждому коммиту--shortstatПоказывать краткую статистику по каждому коммиту--name-onlyПоказывать список изменённых файлов--name-statusПоказывать список изменённых файлов с информацией о них--abbrev-commitПоказывать только несколько первых цифр SHA-1--relative-dateПоказывать дату в относительной форме
--pretty=format:"" можно указать, какие именно данные о коммите нужно выводить, определив внутри кавычек общий паттерн, используя следующие обозначения:
%HХеш коммита%hСокращённый хеш коммита%dИмена ссылок на коммит%sСообщение к коммиту%anАвтор%adДата автора%cnКоммитер%cdДата коммитера%CredПереключить цвет на красный%CgreenПереключить цвет на зелёный%CblueПереключить цвет на синий%CresetСбросить цвет
При написании поста использовались:
Комментариев нет:
Отправить комментарий