Git и контроль версий: первый репозиторий и коммит
💻 Информатика · 9 класс
Рабочая папка, индекс и история: как сохранить осмысленную версию и проверить, что вошло в коммит.

Зачем нужна история
Система контроля версий записывает изменения файлов и позволяет сравнивать состояния проекта. Вместо папок «финал», «финал 2» и «точнофинал» можно сохранять осмысленные версии с описанием. Git работает локально: учётная запись на сайте не требуется для первого учебного репозитория.
Git и GitHub — разные вещи. Git управляет версиями, а GitHub является одним из сервисов размещения репозиториев и совместной работы. Локальный коммит сам по себе не публикует данные в интернете.
Три состояния
Рабочая папка содержит текущие файлы. Индекс, или staging area, хранит подготовленное для следующего коммита. Коммит фиксирует выбранное состояние в истории. Редактирование файла не добавляет его автоматически в индекс и не создаёт новую версию.
Перед опытом установите Git по инструкции для своей ОС и проверьте git --version. Создайте новую пустую учебную папку и откройте в ней терминал. Не выполняйте первое упражнение внутри существующего важного проекта.
Минимальная последовательность
git init
Создайте в редакторе файл notes.txt с одной строкой: First draft. Затем выполните:
git status
git add notes.txt
git diff --cached
git -c user.name="Student" -c user.email="student@example.com" commit -m "Add first note"
git log --onelineПараметры -c в примере задают учебное имя и адрес только для этой команды, не меняя глобальную настройку компьютера. В реальном проекте используйте согласованные данные автора. Перед коммитом git diff --cached показывает именно подготовленные изменения.
Разобранная ситуация с индексом
Вы записали в notes.txt строку A и выполнили git add. Затем заменили её на B, но не повторили add. В коммит попадёт A: индекс хранит снимок на момент подготовки, а не постоянно синхронизируется с файлом. Git status покажет одновременно подготовленные и неподготовленные изменения.
Чтобы зафиксировать B, снова выполните git add notes.txt и проверьте подготовленную разницу. Не используйте add всех файлов без просмотра: в папке могут находиться лишние черновики или личные данные.
Что коммит не гарантирует
Коммит не проверяет правильность текста или программы. Он фиксирует содержимое и метаданные. Сообщение должно объяснять изменение, а не просто повторять «update». Для совместной работы дополнительно нужны понятные правила веток, проверки и удалённый репозиторий.
Git также не заменяет отдельную резервную копию: потеря единственного диска может уничтожить и рабочие файлы, и локальную историю. Важные данные должны иметь продуманное резервирование.
Что не следует коммитить
Пароли, токены, приватные документы и автоматически создаваемые большие файлы не должны случайно попадать в историю. Gitignore помогает исключать подходящие неотслеживаемые файлы, но не удаляет уже записанный секрет из старых коммитов. В учебном опыте используйте только искусственные данные.
Практика
- Публикует ли git commit файлы в интернете?
- Что попадёт в коммит после add версии A и последующей правки B без нового add?
- Как проверить подготовленную разницу?
Ответы
1. Нет: коммит локальный. 2. A, состояние индекса. 3. Git diff --cached; дополнительно git status показывает состояние файлов. Эти проверки помогают сохранить нужную версию и не включить лишнее.