Git·19 питань

Як переглянути історію комітів і знайти потрібний?

Відповідь

Історія комітів — головний інструмент для розуміння, що і коли змінилося в проєкті. Git пропонує кілька способів перегляду та пошуку.

Базовий перегляд: git log показує історію у зворотному хронологічному порядку — останні коміти вгорі. Кожен коміт містить хеш, автора, дату та повідомлення. Команда git log --oneline показує компактний формат — один коміт на рядок, лише хеш і повідомлення. Корисно для огляду великої історії.

Фільтрація: git log -5 показує останні 5 комітів. git log --author="Іван" фільтрує за автором. git log --since="2 weeks ago" — коміти за останні 2 тижні. git log --since="2026-01-01" --until="2026-06-01" — діапазон дат. git log -- <файл> показує лише коміти, що зачіпають конкретний файл.

Пошук за повідомленням: git log --grep="авторизація" шукає коміти з ключовим словом у повідомленні. Прапорець -i робить пошук нечутливим до регістру: git log --grep="auth" -i. Можна шукати за регулярними виразами: git log --grep="fix\(.*\)".

Візуалізація: git log --graph --oneline --all показує дерево гілок у вигляді графа — зручно для розуміння структури злиттів. Прапорець --all включає всі гілки, не лише поточну. Альтернатива: git log --graph --oneline --decorate — додає мітки гілок та тегів.

Зміни в коміті: git show <hash> показує повний diff конкретного коміту. git show HEAD — останній коміт. git show HEAD~2 — третій з кінця. Команда git diff <hash1>..<hash2> показує різницю між двома комітами.

Пошук багу з bisect: git bisect start, git bisect bad (поточний коміт зламаний), git bisect good <hash> (цей коміт працював). Git автоматично переключає коміти в середині діапазону. Ви тестуєте і позначаєте git bisect good або git bisect bad. Git знаходить коміт, який вніс баг. Завершення: git bisect reset.

Blame: git blame <файл> показує, хто і в якому коміті написав кожен рядок файлу. Корисно для розуміння контексту змін. git blame -L 10,20 <файл> — лише рядки 10-20.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем