Три места для одного изменения
Рабочая папка содержит файлы, которые вы редактируете. Область подготовки, или индекс, описывает содержимое будущего коммита. Сам коммит сохраняет подготовленный снимок в истории репозитория. Между этими состояниями есть важная граница: изменение после добавления в индекс не попадает туда автоматически. Например, вы подготовили первую редакцию абзаца, а затем исправили ещё одно слово. Следующий коммит может сохранить первую редакцию, если не подготовить новую правку. Поэтому перед записью полезно отдельно проверять рабочие изменения и уже подготовленные. Команда git status показывает состояние файлов, git diff — неподготовленные различия, а git diff --staged — изменения, уже включённые в индекс Git.
Один коммит отвечает на один вопрос
Хорошая единица истории объясняет законченное намерение: исправлена опечатка, уточнено условие, добавлен пример. Если в одном коммите смешаны оформление, удаление раздела и изменение смысла, его сложнее проверять. Небольшой размер сам по себе не цель: важно, чтобы части относились к одной задаче. Сообщение коммита должно называть результат, а при необходимости объяснять причину. Фраза «поправил разное» почти не помогает будущему читателю. Представьте, что через месяц нужно найти изменение без открытия каждого файла: понятные сообщения значительно упрощают поиск.
История, ветка и совместная работа
Ветка позволяет развивать отдельную линию изменений, не смешивая незавершённую работу с другой линией. Она не означает отдельную копию проекта, которую обязательно нужно вручную переносить между папками. При объединении изменений иногда возникает конфликт: система не может самостоятельно выбрать правильное сочетание правок. Решение требует понимания смысла текста, а не механического удаления служебных отметок. Удалённый репозиторий помогает обмениваться историей, но локальный коммит сам по себе никуда не отправляется. Сохранение в историю и передача другим участникам — отдельные действия.
Проверка важнее привычного нажатия
Перед коммитом просматривайте список затронутых файлов и сами различия. Так легче заметить случайно добавленные черновики, временные данные или личную информацию. Секреты нельзя включать в репозиторий: последующее удаление из текущего файла не гарантирует исчезновения из истории. Правила исключения помогают не добавлять некоторые файлы в обычном рабочем процессе, но не заменяют проверку и не стирают ранее сохранённое. Для первых опытов достаточно локальной папки с безобидными учебными текстами. Не стоит учиться на рабочем проекте, где ошибочная команда затронет чужие изменения.
Попробуйте на практике
Воспроизведите цикл Git в отдельной учебной папке, если Git уже установлен. При отсутствии программы выполните тот же цикл на бумаге с тремя колонками.
- Создайте пустую папку для упражнения, откройте в ней терминал и выполните git init. Не используйте существующий рабочий проект.
- Создайте файл note.txt с одним безобидным предложением. Посмотрите git status и подготовьте файл командой git add note.txt.
- Допишите в файл второе предложение, затем сравните вывод git diff и git diff --staged: это две разные правки относительно разных состояний.
- Если имя и адрес автора Git уже настроены, выполните git commit -m "Добавить первую заметку". Если нет, просто зафиксируйте ожидаемый снимок на бумаге, не меняя настройки.
- Снова изучите git status. Объясните, почему второе предложение осталось вне первого снимка.
Как проверить результат. Результат верен, если вы можете указать содержимое рабочей версии, индекса и первого коммита и объяснить, в какой момент появился каждый вариант.
Частые вопросы
Почему сохранённая в редакторе правка отсутствует в коммите?
Сохранение меняет рабочий файл. Для обычного коммита важен подготовленный снимок, который мог быть создан до последней правки. Проверяйте, какое содержимое действительно включено в индекс.
Нужен ли удалённый сервис для изучения основных принципов?
Нет. Локальный репозиторий позволяет знакомиться с историей и подготовкой изменений. Удалённое размещение добавляет обмен с другими участниками, но не является условием существования коммитов.
Самостоятельный разбор темы. Содержание конкретной обучающей программы здесь не представлено.