Этап 1 - Введение в Git и контроль версий
Начнем с реальной ошибки: у команды есть учебный проект task-service, и два человека одновременно меняют task-service.js и README. Через час один из них «забыл» своё изменение, второй считает, что в продакшн уже залил правильную версию. И начинается спор, потому что по обычным папкам «копия_финал» такой вопрос не решить.
Git — это не «сохранить файл на диске». Это механизм для создания именованных контрольных точек истории проекта. Каждый commit объясняет, что изменилось и почему, плюс фиксирует автора и момент времени. Точно это и нужно, когда нужно доказать, где уехала логика сортировки задач или откуда появилась ошибка.

Главное различие от обычной синхронизации файлов: Dropbox или Google Drive копируют последний вариант, но почти не объясняют логику изменений. Git группирует изменения в осмысленные блоки. Это сильно меняет рабочий процесс:
- Вы можете коммитить не «все подряд», а только связанный набор файлов;
- Вы можете вернуть состояние до момента, когда поведение еще было корректным;
- Вы можете сравнить два коммита и понять причину регресса.
Git и GitHub — разные роли
Git работает локально и умеет хранить историю без интернета. Он позволяет:
- редактировать проект,
- смотреть диффы,
- создавать ветки,
- фиксировать этапы в истории.
GitHub — это платформа поверх Git, где удобно хранить удалённую копию репозитория, обсуждать изменения и проводить ревью через pull request. Поэтому фраза «всё в GitHub» частично верна: удобно, но не полностью точно — Git есть и без GitHub.
Для курса мы придерживаемся одного объекта обучения:
README.md— описание требований и сценариев;task-service.js— бизнес-логика задач;notes.txt— вспомогательные заметки.
Дальше каждая статья будет продолжать этот путь:
- вторая статья делает
git init, commits и базовый цикл; - третья учит, как читать изменения до коммита;
- четвёртая вводит ветки и merge;
- пятая разбирает конфликт слияния;
- шестая и седьмая переносят всё в GitHub и PR;
- восьмая показывает восстановление и продвинутые инструменты;
- девятая собирает нормальный рабочий процесс.
Базовая конфигурация, без которой не начнете
Убедитесь, что Git установлен:
git --version
Задайте имя и email, которые будут записаны в историю:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global --list
Используйте тот же email, что и в GitHub, если хотите связать локальную историю с вашим профилем позже.
| Слой | Что делает |
|---|---|
| Git | Хранит историю и связи между коммитами |
| GitHub | Делает эту историю удобной для команды |
| Commit | Локальная проверяемая договоренность по изменению |
| Branch | Изолированный путь экспериментов |
Контрольная точка: вы можете внятно объяснить разницу между Git и GitHub, и почему история изменений важнее, чем «последний сохранённый файл».