Навык 19 из 30
HS-DEV-003-GITБезопасное ведение истории изменений в Git
Использовать Git как проверяемую историю изменений: определить состояние и текущую ветку, изучить diff, отделить изменения текущей задачи от ранее существовавших и несвязанных правок, сформировать целевой commit, безопасно работать с ветками и восстановить нужную версию без потери несохранённой работы.
Тренажёр навыка
Понять.
Сделать.
Подтвердить.
Что нужно уметь
Использовать Git как проверяемую историю изменений: определить состояние и текущую ветку, изучить diff, отделить изменения текущей задачи от ранее существовавших и несвязанных правок, сформировать целевой commit, безопасно работать с ветками и восстановить нужную версию без потери несохранённой работы.
Как закрепить
В учебном репозитории внести два независимых изменения, изучить status и diff, разделить их на два осмысленных commit, создать ветку для следующего изменения, сравнить историю и отменить специально внесённую ошибку безопасным для ситуации способом.
Как проверить перенос
Получить учебный репозиторий с явно описанной целью задачи, двумя относящимися к ней правками и одним заранее существовавшим несвязанным изменением. По status, diff и истории выделить только изменения задачи, подготовить из них целевой commit и оставить несвязанную правку нетронутой. Затем создать ветку для следующего учебного изменения, намеренно внести обратимую ошибку в отдельный fixture-файл и восстановить его безопасным для текущего состояния способом, не затронув защищённую правку. Объяснить риск каждого потенциально разрушительного действия; владельца неизвестных изменений по содержимому не угадывать и до подтверждения считать их защищёнными.
Результат, а не ощущение
Evidence
освоения
- корректное чтение status, diff и истории;
- небольшие commits с осмысленными сообщениями;
- сохранены ранее существовавшие, неизвестные и несвязанные изменения;
- ветка и базовая версия выбраны осознанно;
- восстановление или отмена выполнены без потери нужной работы;
- отсутствие секретов и лишних файлов в истории.
Антипаттерны
Типовые ошибки
- commit всех файлов без просмотра diff;
- смешивание нескольких причин изменения в одном commit;
- приписывание неизвестных изменений человеку или агенту без надёжного evidence;
- применение reset, checkout или clean без понимания последствий;
- перезапись ранее существовавших или неизвестных незакоммиченных изменений;
- публикация секретов или сгенерированных артефактов;
- восприятие зелёного status как доказательства качества результата.