Глава 23 · Часть V · Проверяем и автоматизируем

Самопроверка изменений и дисциплина коммитов

Git сопровождал SafeSort с первой строчки кода. Теперь соберём привычку проверять изменения перед каждым коммитом.

SafeSort · Часть 5 из 6Тесты и CI

Git сопровождал SafeSort с самого начала: каждый чекпойнт в Части IV (страницы с 23-08 по 23-22) отмечал коммит и Pull Request, сохранявший очередную функцию в истории. Здесь мы не открываем Git впервые. Мы формализуем дисциплину самопроверки перед коммитом, прежде чем в следующем разделе код пройдёт полный цикл Issue → ветка → Pull Request на GitHub. Между «файл изменён на диске» и «изменение сохранено в истории» есть два промежуточных шага, и понимание разницы между ними экономит немало недоумения в будущем.

Рабочее деревофайлы на диске,которые видиттекстовый редакторИндекссодержимое,отмеченное командойgit add для будущего…Коммитсохранённый снимокиндекса в истории
git add помещает снимок текущего содержимого в индекс; рабочий файл остаётся на месте и может снова измениться
Терминал
git status
git diff
git add src/safesort/duplicates.py tests/test_duplicates.py
git commit -m "feat: add duplicate-file detection"
git diff показывает содержимое изменений
git status перечисляет изменённые файлы, но не показывает содержимое изменений. git diff показывает построчно, что именно добавлено и что удалено. Читайте его перед каждым коммитом, чтобы случайно не закоммитить что-то лишнее: отладочный print(), забытый файл с личными данными, временный код.

Логические коммиты

Один коммит должен описывать одно законченное, осмысленное изменение, а не «конец рабочего дня» или случайный набор всего, что накопилось. Сравните:

ХорошоПлохо
feat: add directory scannerupdate
feat: add dry-run sort planningfix
test: cover undo conflictsstuff
docs: document safesort.toml optionsfinal-final
Когда не стоит использовать git add .
git add . добавляет в индекс все изменения в текущем каталоге разом. Это удобно, когда коммит действительно должен включать всё, но легко случайно затянуть в коммит что-то не относящееся к делу. git add путь/к/файлу добавляет только нужные файлы и делает коммиты более осмысленными.
Практика: читаем git diff и группируем изменения
Нужен Git-репозиторий. Выполните практику локально в VS Code, PyCharm или терминале
Практика выполняется локально
Открыть практику →