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 Контроль відображення записів

Існує багато варіантів вибору, які елементи відображати в log. Пограйтесь з наступними параметрами:

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

Подробиці в інструкції git-log.

03 Ухитряємося

Ось що я використовую для перегляду змін, зроблених за останній тиждень. Я додаю --author=alex, якщо я хочу бачити лише зміни, зроблені мною.

git log --all --pretty=format:"%h %cd %s (%an)" --since='7 days ago'

04 Кінцевий формат історії

З часом, я вирішив, що для більшої частини моєї роботи мені підходить наступий формат log.

Виконайте:

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 (для інших платформ) корисні у вивчені історії змін.