10. История
Цели
- Научиться просматривать историю проекта.
Получение списка произведенных изменений — функция команды git log
.
Выполните:
git log
Вы увидите…
Результат:
$ git log commit fa3c1411aa09441695a9e645d4371e8d749da1dc Author: Alexander Shvets <alex@githowto.com> Date: Wed Mar 9 10:27:54 2011 -0500 Added HTML header commit 8c3228730ed03116815a5cc682e8105e7d981928 Author: Alexander Shvets <alex@githowto.com> Date: Wed Mar 9 10:27:54 2011 -0500 Added standard HTML page tags commit 43628f779cb333dd30d78186499f93638107f70b Author: Alexander Shvets <alex@githowto.com> Date: Wed Mar 9 10:27:54 2011 -0500 Added h1 tag commit 911e8c91caeab8d30ad16d56746cbd6eef72dc4c Author: Alexander Shvets <alex@githowto.com> Date: Wed Mar 9 10:27:54 2011 -0500 First Commit
Вот список всех четырех коммитов в репозиторий, которые мы успели совершить.
01 Однострочная история
Вы полностью контролируете то, что отображает log
. Мне, например, нравится однострочный формат:
Выполните:
git log --pretty=oneline
Вы увидите…
Результат:
$ git log --pretty=oneline fa3c1411aa09441695a9e645d4371e8d749da1dc Added HTML header 8c3228730ed03116815a5cc682e8105e7d981928 Added standard HTML page tags 43628f779cb333dd30d78186499f93638107f70b Added h1 tag 911e8c91caeab8d30ad16d56746cbd6eef72dc4c First Commit
02 Контроль отображения записей
Есть много вариантов выбора, какие элементы отображаются в логе. Поиграйте со следующими параметрами:
git log --pretty=oneline --max-count=2 git log --pretty=oneline --since='5 minutes ago' git log --pretty=oneline --until='5 minutes ago' git log --pretty=oneline --author=<your name> git log --pretty=oneline --all
В unix-системах доступна справочная страница man git log
.
03 Изощряемся
Вот что я использую для просмотра изменений, сделанных за последнюю неделю. Я добавлю --author=alex
, если я хочу увидеть только изменения, которые сделал я.
git log --all --pretty=format:"%h %cd %s (%an)" --since='7 days ago'
04 Конечный формат лога
Со временем, я решил, что для большей части моей работы мне подходит следующий формат лога.
Выполните:
git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
Выглядит это примерно так:
Результат:
$ git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short * fa3c141 2011-03-09 | Added HTML header (HEAD, master) [Alexander Shvets] * 8c32287 2011-03-09 | Added standard HTML page tags [Alexander Shvets] * 43628f7 2011-03-09 | Added h1 tag [Alexander Shvets] * 911e8c9 2011-03-09 | First Commit [Alexander Shvets]
Давайте рассмотрим его в деталях:
--pretty="..."
— определяет формат вывода.%h
— укороченный хэш коммита%d
— дополнения коммита («головы» веток или теги)%ad
— дата коммита%s
— комментарий%an
— имя автора--graph
— отображает дерево коммитов в виде ASCII-графика--date=short
— сохраняет формат даты коротким и симпатичным
Таким образом, каждый раз, когда вы захотите посмотреть лог, вам придется много печатать. К счастью, мы узнаем о git алиасах в следующем уроке.
05 Другие инструменты
Оба gitx
(для Mac) и gitk
(для любой платформы) полезны
в изучении истории изменений.