Блог переехал. Актуальная версия поста находится по адресу: 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
Сбросить цвет
При написании поста использовались:
Комментариев нет:
Отправить комментарий