Как посмотреть историю файла
Список коммитов, которые меняли файл:
$ git log --oneline -- README.md
3e677f8 (HEAD -> main) Добавлен первый пункт
5e634b3 Первый коммит: список делТе же коммиты вместе с правками в файле:
git log -p -- README.mdДва дефиса -- отделяют имя файла от остальных параметров. Без них команда обычно тоже работает, но с ними Git не спутает файл с именем ветки, и так можно смотреть историю уже удалённого файла.
Файл переименовывали
Обычный git log останавливается на коммите, где файл получил текущее имя. Чтобы видеть историю и под прежними именами:
git log --oneline --follow -- todo.txt--follow работает только с одним файлом.
Кто и когда изменил каждую строку
$ git blame todo.txt
^d31c670 notes.txt (Ivan Petrov 2026-11-05 10:12:03 +0300 1) # Список дел
27ca4282 notes.txt (Ivan Petrov 2026-11-05 10:15:42 +0300 2) - купить хлебСлева — коммит, в котором строка появилась или изменилась последний раз, затем имя файла в том коммите (если его переименовывали), автор, дата и номер строки. Знак ^ у хеша — пометка самого первого коммита. Только нужные строки — git blame -L 10,20 файл.
Слово blame переводится как «обвинять», но смысл команды — найти, к какому коммиту и задаче относится строка, чтобы понять, зачем её так написали.
Как файл выглядел раньше
Показать файл целиком в версии из определённого коммита, ничего не меняя в рабочей папке:
git show 5e634b3:README.mdПуть после двоеточия — от корня репозитория. Вывод можно сохранить в отдельный файл: git show 5e634b3:README.md > old-readme.md. Вернуть файл к этой версии — в справке Как откатить файл к прошлой версии.
Что изменилось в файле между двумя коммитами:
git diff 5e634b3 3e677f8 -- README.mdНайти коммит, где появился текст
git log -S "купить хлеб" --oneline-S находит коммиты, в которых число вхождений этого текста изменилось, — то есть где его добавили или удалили. Удобно, когда нужно узнать, когда появилась функция или строка настройки.
В редакторе и на сайте
Visual Studio Code показывает историю файла на панели «Timeline» (Временная шкала), а GitHub и GitLab — на странице файла: кнопки истории (History) и Blame. Это те же данные, что дают команды выше.
Подводные камни
git logпо папке тоже работает:git log --oneline -- src/— коммиты, менявшие что-то вsrc.- История длинная — Git показывает её постранично. Выход —
q, поиск по тексту —/словои Enter. - Даты в выводе — время коммита у автора, с его часовым поясом (
+0300).