Пошук уроків, статей та іншого контенту
Навчитеся переглядати коміти, використовувати скорочений формат і знаходити потрібні зміни в історії репозиторію.
git logКоманда git log показує історію комітів поточної гілки — від найновішого до найстарішого.
git logДля кожного коміту Git зазвичай показує:
ідентифікатор коміту;
автора;
дату створення;
повідомлення коміту.
Приклад результату:
commit 8f31a2c4d6e7f8901234567890abcdef12345678 (HEAD -> main)
Author: Olena Kovalenko <olena@example.com>
Date: Mon Sep 2 10:30:00 2026 +0300
Add validation for email
commit 3a12bc45de67f8901234567890abcdef12345678
Author: Olena Kovalenko <olena@example.com>
Date: Sun Sep 1 16:20:00 2026 +0300
Create registration formНайважливіша частина ідентифікатора — хеш коміту. Він однозначно визначає коміт у репозиторії.
HEAD -> main означає, що зараз покажчик HEAD перебуває на останньому коміті гілки main.
Повний формат зручний для детального перегляду, але для швидкого огляду краще використовувати параметр --oneline:
git log --onelineПриклад:
8f31a2c Add validation for email
3a12bc4 Create registration form
1b7d902 Initialize projectУ такому форматі кожен коміт займає один рядок:
зліва розташований скорочений хеш;
справа — повідомлення коміту.
Скорочений хеш можна використовувати в командах Git, якщо його достатньо для однозначного визначення коміту:
git show 8f31a2cЩоб переглянути лише кілька останніх комітів, використовуйте параметр -n, де n — потрібна кількість:
git log -n 3Або в скороченому форматі:
git log --oneline -n 3Це корисно у великих репозиторіях, де повна історія може містити сотні або тисячі комітів.
За замовчуванням git log показує інформацію про коміти, але не повний вміст змін. Щоб побачити, які рядки було додано або видалено, використовуйте параметр -p:
git log -pСкорочений варіант із кількома останніми комітами:
git log -p -n 2Позначення змін:
рядки з + було додано;
рядки з - було видалено;
інші рядки показують контекст навколо зміни.
Для швидкого перегляду статистики змін без самих рядків коду використовуйте --stat:
git log --statПриклад:
commit 8f31a2c4d6e7f8901234567890abcdef12345678
Author: Olena Kovalenko <olena@example.com>
Date: Mon Sep 2 10:30:00 2026 +0300
Add validation for email
src/validation.js | 8 ++++++++
1 file changed, 8 insertions(+)Параметр --graph показує зв’язки між комітами за допомогою текстового графа. Разом із --oneline його часто використовують для огляду історії:
git log --oneline --graphПриклад:
* 8f31a2c Add validation for email
* 3a12bc4 Create registration form
|\
| * 71c4d90 Update README
|/
* 1b7d902 Initialize projectЩоб також бачити назви гілок і позначки на кшталт HEAD та тегів, додайте --decorate:
git log --oneline --graph --decorateПоширений варіант для огляду всієї історії:
git log --oneline --graph --decorate --allПараметр --all додає до результату коміти з усіх локальних гілок, а не лише з поточної.
Щоб знайти коміти, у повідомленні яких є певне слово або фраза, використовуйте --grep:
git log --grep="validation"Пошук не враховує регістр за допомогою -i:
git log --grep="validation" -iСкорочений результат:
git log --oneline --grep="validation" -iGit шукатиме текст саме в повідомленнях комітів. Якщо слово є лише в коді, але не в повідомленні, такий коміт не буде знайдено за допомогою --grep.
Іноді потрібно знайти коміти, у яких додався або видалився конкретний текст.
Параметр -S знаходить коміти, у яких змінилася кількість входжень заданого тексту:
git log -S"validateEmail" --onelineЦя команда може знайти коміт, у якому функцію validateEmail було додано, перейменовано або видалено.
Параметр -G шукає зміни рядків, що відповідають регулярному виразу:
git log -G"console\.log" --onelineЦя команда знаходить коміти, де змінювалися рядки з console.log.
Різниця між -S і -G:
-S шукає зміну кількості конкретного тексту;
-G шукає рядки, що відповідають регулярному виразу.
Для початку часто достатньо -S, якщо відомо точне ім’я функції, змінної або фрагмент коду.
Щоб побачити лише коміти, які змінювали певний файл, укажіть шлях до нього після двох дефісів:
git log --oneline -- src/validation.jsДва дефіси -- відокремлюють параметри Git від шляху до файлу. Це допомагає Git правильно розпізнати наступне значення саме як шлях.
Щоб переглянути самі зміни цього файлу:
git log -p -- src/validation.jsМожна поєднати шлях, обмеження кількості та скорочений формат:
git log --oneline -n 5 -- src/validation.jsУявімо, що в репозиторії є файл src/validation.js, і потрібно дізнатися:
які останні коміти змінювали цей файл;
у якому коміті з’явилася функція validateEmail;
які саме рядки було змінено в останньому коміті.
Послідовність команд:
git log --oneline -n 5 -- src/validation.js
git log --oneline -S"validateEmail" -- src/validation.js
git log -p -n 1 -- src/validation.jsПерша команда показує останні п’ять комітів файлу.
Друга шукає коміт, у якому змінилася кількість входжень validateEmail.
Третя показує повний diff останньої зміни цього файлу.
Параметри git log можна комбінувати:
git log --oneline --graph --decorate --all -n 10Команда показує:
десять останніх комітів;
скорочені рядки;
структуру гілок;
назви гілок і покажчиків;
коміти з усіх локальних гілок.
Ще один практичний варіант:
git log --stat --oneline -n 3Він показує три останні коміти в скороченому форматі та статистику змінених файлів.
git logКоманда git log без параметрів показує лише інформацію про коміти.
Для перегляду рядків, які було змінено, використовуйте:
git log -p--grepПараметр --grep шукає лише в повідомленнях комітів:
git log --grep="login"Для пошуку конкретного тексту в змінах використовуйте:
git log -S"login" --onelineБез --all команда зазвичай показує історію, доступну з поточної гілки:
git log --onelineЩоб додати коміти інших локальних гілок, використовуйте:
git log --oneline --allЯкщо потрібно переглянути історію конкретного файлу, вказуйте його після --:
git log --oneline -- README.mdБез цього Git може неправильно трактувати значення як параметр команди.
git log показує історію комітів поточної гілки.
git log --oneline виводить коміти в компактному форматі.
git log -n 5 обмежує результат п’ятьма комітами.
git log -p показує рядкові зміни в комітах.
git log --stat показує статистику змінених файлів.
git log --oneline --graph --decorate --all зручно використовувати для огляду гілок.
git log --grep="текст" шукає текст у повідомленнях комітів.
git log -S"текст" допомагає знайти коміти, у яких змінювався конкретний фрагмент коду.
git log -- path/to/file показує історію окремого файлу.