6. Історія

Перегляд історії

Як я вже згадував, git log — твій основний інструмент для дослідження історії комітів. Запустімо цю команду ще раз і подивімося, що вона робить.

Завдання
Виконано

Запусти команду git log, щоб побачити історію комітів.

Підказка: деякі команди Git, як-от git log, можуть перемкнути термінал у режим pager, призначений для перегляду довгих списків. У цьому режимі вивід можна гортати стрілками і на клавіатурі. Щоб вийти з режиму pager, натисни q.

Чудово! На екрані має бути список, схожий на цей. Хеші комітів, дати, ім'я та email у тебе будуть інші:

Результат:
commit 11a3f60fe6520fb6f83306d94765ac54f8964be0
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Linked styles to hello.html
 
commit 7d5aa020c9b3cf2cb5a21575a33396f36e783cd4
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Added CSS styles
 
commit 346ca091076783c70623aba03fb7139d3d27134f
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Added H1, HTML, and BODY tags to hello.html
 
commit 571a4dd16430d5cc89cd2d509bdfbf097d3db63a
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Initial commit

Проблема стандартного виводу git log у тому, що він доволі багатослівний. Кожен коміт займає кілька рядків, і на довгій історії це швидко втомлює. На щастя, у git log є багато опцій для налаштування виводу.

Одна з найкорисніших — --oneline: вона стискає кожен коміт до одного рядка. Спробуймо.

Виконай у терміналі:
git log --oneline
Завдання
Виконано

Запусти git log --oneline, щоб побачити компактнішу історію комітів.

Вивід має стати значно лаконічнішим:

Результат:
11a3f60 Linked styles to hello.html
7d5aa02 Added CSS styles
346ca09 Added H1, HTML, and BODY tags to hello.html
571a4dd Initial commit

Значно краще, правда? З --oneline можна швидко пробігтися по історії й знайти потрібний коміт.

Корисно знати!

В команди git log є багато інших корисних опцій. Ось кілька прикладів. Якщо захочеш спробувати приклад з --author, заміни Your Name на ім'я, вказане в налаштуваннях Git:

Виконай у терміналі:
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 і порівняй, як змінюється вивід.

Як бачиш, git log — потужний інструмент для фільтрування та форматування історії комітів. Опції можна комбінувати й будувати ще точніші запити.

Наприклад, спробуймо складнішу версію git log:

Виконай у терміналі:
git log --format="%h %ad | %s%d [%an]" --date=short
Завдання
Виконано

Запусти команду git log вище й спробуй розшифрувати її вивід.

Вивід має виглядати приблизно так. Знову ж таки, хеші, дати та ім'я автора в тебе будуть інші:

Результат:

11a3f60 2024-03-15 | Linked styles to hello.html (HEAD -> main) [Your Name] 7d5aa02 2024-03-15 | Added CSS styles [Your Name] 346ca09 2024-03-15 | Added H1, HTML, and BODY tags to hello.html (tag: 1.0) [Your Name] 571a4dd 2024-03-15 | Initial commit [Your Name]

Ось що робить кожна частина цієї команди:

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

Якщо помітиш, що часто користуєшся цим форматом, його можна зробити стандартним. Зробімо це для поточного репозиторію. До речі, якщо хочеш залишити цей формат для всіх своїх репозиторіїв, додай до команд нижче опцію --global.

Виконай у терміналі:
git config format.pretty "%h %ad | %s%d [%an]"
git config log.date short
Завдання
Виконано

Використай команди вище, щоб зробити цей формат журналу стандартним.

Примітка: це вплине тільки на поточний репозиторій. Щоб налаштувати глобально, додай опцію --global після кожного git config.

Чудово! Ми розібрали, як ефективно переглядати історію комітів через git log. Це стане в пригоді, коли проєкт розростеться і треба буде шукати конкретні коміти.

Переходимо до порівняння комітів.

Next step
Хочеш спробувати Сюжетний режим?

Проходь курс так, як він і задуманий: маленькими порціями, у сфокусованому лінійному порядку, поступово відкриваючи статті Gitopedia. Будь-коли можна продовжити зі справжнім Git у VS Code/Cursor/Antigravity/Windsurf.

Сюжетний режим
БЕЗКОШТОВНО
але потрібен вхід