HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Программирование - это не только написание новых программ, но и постоянный анализ уже написанного кода. Иногда код понятен и без слов - и это хороший код.</p>
1 <p>Программирование - это не только написание новых программ, но и постоянный анализ уже написанного кода. Иногда код понятен и без слов - и это хороший код.</p>
2 <p>Но так происходит не всегда. Код может вызывать вопросы. Почему он написан именно так, кто его написал и когда.</p>
2 <p>Но так происходит не всегда. Код может вызывать вопросы. Почему он написан именно так, кто его написал и когда.</p>
3 <p>Ответить на эти вопросы помогает история изменений. Хорошо сделанные коммиты имеют понятное описание, и каждый из них делает ровно одну законченную вещь - в таком случае история становится мощным инструментом для анализа кода. Именно поэтому так важно хорошо понимать философию Git и следовать лучшим практикам при работе с ним.</p>
3 <p>Ответить на эти вопросы помогает история изменений. Хорошо сделанные коммиты имеют понятное описание, и каждый из них делает ровно одну законченную вещь - в таком случае история становится мощным инструментом для анализа кода. Именно поэтому так важно хорошо понимать философию Git и следовать лучшим практикам при работе с ним.</p>
4 <p>Git предоставляет целую пачку команд со множеством опций, позволяющих вытащить невероятное количество информации и показать все, что скрыто. С ними мы познакомимся в этом уроке.</p>
4 <p>Git предоставляет целую пачку команд со множеством опций, позволяющих вытащить невероятное количество информации и показать все, что скрыто. С ними мы познакомимся в этом уроке.</p>
5 <h2>Команда git log</h2>
5 <h2>Команда git log</h2>
6 <p>Самая простая аналитика выполняется командой git log. Она показывает список всех выполненных коммитов, отсортированных по дате добавления. Сверху мы видим самые последние коммиты:</p>
6 <p>Самая простая аналитика выполняется командой git log. Она показывает список всех выполненных коммитов, отсортированных по дате добавления. Сверху мы видим самые последние коммиты:</p>
7 <p>Из этого вывода мы можем узнать кто, когда и какие коммиты делал. Если коммиты оформлены хорошо, то по их описанию уже многое понятно. Оформление коммитов - отдельная тема, которую мы рассмотрим позже.</p>
7 <p>Из этого вывода мы можем узнать кто, когда и какие коммиты делал. Если коммиты оформлены хорошо, то по их описанию уже многое понятно. Оформление коммитов - отдельная тема, которую мы рассмотрим позже.</p>
8 <p>У команды git log есть полезный флаг -p, который сразу выводит диф для каждого коммита:</p>
8 <p>У команды git log есть полезный флаг -p, который сразу выводит диф для каждого коммита:</p>
9 <h2>Команда git show</h2>
9 <h2>Команда git show</h2>
10 <p>У каждого коммита есть уникальный набор символов -<strong>идентификатор</strong>(еще говорят "хеш"). С помощью хеша можно посмотреть все изменения, сделанные в рамках одного коммита:</p>
10 <p>У каждого коммита есть уникальный набор символов -<strong>идентификатор</strong>(еще говорят "хеш"). С помощью хеша можно посмотреть все изменения, сделанные в рамках одного коммита:</p>
11 <p>Хеши коммитов в Git очень длинные, и ими бывает неудобно пользоваться. Поэтому разработчики Git добавили возможность указывать только часть хеша. Достаточно взять первые семь символов и подставить их в ту команду, которая работает с коммитами:</p>
11 <p>Хеши коммитов в Git очень длинные, и ими бывает неудобно пользоваться. Поэтому разработчики Git добавили возможность указывать только часть хеша. Достаточно взять первые семь символов и подставить их в ту команду, которая работает с коммитами:</p>
12 <p>Чаще всего вам не придется высчитывать их самим. Большая часть команд Git выводит хеш коммита в сокращенном варианте, облегчая его использование. Такое упрощение хорошо работает, потому что даже первые семь символов будут всегда уникальными.</p>
12 <p>Чаще всего вам не придется высчитывать их самим. Большая часть команд Git выводит хеш коммита в сокращенном варианте, облегчая его использование. Такое упрощение хорошо работает, потому что даже первые семь символов будут всегда уникальными.</p>
13 <h2>Команда git blame</h2>
13 <h2>Команда git blame</h2>
14 <p>А что если мы не знаем коммита, но нам интересно, кто последним менял конкретную строчку в файле? Для этого подойдет команда git blame &lt;путь до файла&gt;. Эта команда выводит файл и рядом с каждой строчкой показывает того, кто ее менял и в каком коммите:</p>
14 <p>А что если мы не знаем коммита, но нам интересно, кто последним менял конкретную строчку в файле? Для этого подойдет команда git blame &lt;путь до файла&gt;. Эта команда выводит файл и рядом с каждой строчкой показывает того, кто ее менял и в каком коммите:</p>
15 <p>Важно помнить, что изменение строчки - не то же самое, что ее написание. Вполне возможно, что программист исправил небольшую опечатку, а саму строчку написал кто-то до него. Имея такой вывод, уже легко пойти дальше и изучить конкретный коммит.</p>
15 <p>Важно помнить, что изменение строчки - не то же самое, что ее написание. Вполне возможно, что программист исправил небольшую опечатку, а саму строчку написал кто-то до него. Имея такой вывод, уже легко пойти дальше и изучить конкретный коммит.</p>
16 <h2>Команда git grep</h2>
16 <h2>Команда git grep</h2>
17 <p>Команда git grep ищет совпадение с указанной строкой во всех файлах проекта. Это очень удобная команда для быстрого анализа из терминала. Она удобнее обычного grep, потому что знает про игнорирование и не смотрит в директорию<em>.git</em>, а еще умеет искать по истории:</p>
17 <p>Команда git grep ищет совпадение с указанной строкой во всех файлах проекта. Это очень удобная команда для быстрого анализа из терминала. Она удобнее обычного grep, потому что знает про игнорирование и не смотрит в директорию<em>.git</em>, а еще умеет искать по истории:</p>
18 <h2>GitHub</h2>
18 <h2>GitHub</h2>
19 <p>В простых ситуациях анализировать проект можно прямо на GitHub. Он позволяет просматривать историю коммитов, изменения в конкретном коммите и многое другое.</p>
19 <p>В простых ситуациях анализировать проект можно прямо на GitHub. Он позволяет просматривать историю коммитов, изменения в конкретном коммите и многое другое.</p>