9. Історія проєкту

Цілі

  • Навчитися переглядати історію проєкту.

Отримання списку зроблених змін — функція команди git log.

Виконайте

git log

Ви побачите:

Результат

$ git log
commit b7614c1aea1ffbc46400fe1a163842d6ec620a43
Author: Alexander Shvets <alex@githowto.com>
Date:   Tue Nov 28 05:51:38 2023 -0600

    Added HTML header

commit 46afaff2232fc3d564c40f65cb82e7e94839a1bb
Author: Alexander Shvets <alex@githowto.com>
Date:   Tue Nov 28 05:51:38 2023 -0600

    Added standard HTML page tags

commit 78433de967102f2b59d0a8a60eb397b2663ed282
Author: Alexander Shvets <alex@githowto.com>
Date:   Tue Nov 28 05:51:38 2023 -0600

    Added h1 tag

commit 58369706affbc1c27fa03a65fc7a05847278045f
Author: Alexander Shvets <alex@githowto.com>
Date:   Tue Nov 28 05:51:38 2023 -0600

    Initial commit

Ось список усіх чотирьох комітів, котрі ми встигли створити у репозиторії.

01 Однорядкова історія

Ви повністю контролюєте те, що відображає log. Мені, наприклад, подобається однорядковий формат:

Виконайте

git log --pretty=oneline

Ви побачите:

Результат

$ git log --oneline
b7614c1 Added HTML header
46afaff Added standard HTML page tags
78433de Added h1 tag
5836970 Initial commit

02 Контроль відображення записів

Ось ще цікаві варіанти перегляду історії:

git log --oneline --max-count=2
git log --oneline --since="5 minutes ago"
git log --oneline --until="5 minutes ago"
git log --oneline --author="Your Name"
git log --oneline --all

Існує величезна кількість варіантів перегляду історії, ви можете переглянути їх на сторінці посібника git-log.

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

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

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

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

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

Виконайте

git log --pretty=format:"%h %ad | %s%d [%an]" --date=short

Виглядає це десь так:

Результат

$ git log --pretty=format:"%h %ad | %s%d [%an]" --date=short
b7614c1 2023-11-28 | Added HTML header (HEAD -> main) [Alexander Shvets]
46afaff 2023-11-28 | Added standard HTML page tags [Alexander Shvets]
78433de 2023-11-28 | Added h1 tag [Alexander Shvets]
5836970 2023-11-28 | Initial commit [Alexander Shvets]

Роздивімося його детальніше:

  • --pretty="..." — визначає формат виходу.
  • %h — скрочений хеш коміту.
  • %ad — дата коміту.
  • | візуальний роздільник.
  • %s — коментар.
  • %d — доповнення коміту («голови» гілок та теги).
  • %an — ім'я автора.
  • --date=short — зберігає формат дати коротким і симпатичним.

Таким чином, кожного разу, коли ви захочете подивитись історію, вам прийдеться багато друкувати. На щастя, є кілька параметрів конфігурації Git для налаштування формату виводу історії за замовчуванням:

Виконайте

git config --global format.pretty '%h %ad | %s%d [%an]'
git config --global log.date short

05 Інші інструменти

gitx (для Mac) й gitk (для інших платформ) корисні у вивчені історії змін.