Что такое VCS и зачем нужен Git
система контроля версий хранит историю изменений кода и позволяет нескольким разработчикам работать над одним проектом.
Почему это важно: Без понимания зачем вообще нужен VCS, Git воспринимается как набор непонятных команд. Знание цели помогает выбирать правильные инструменты и понимать, что происходит под капотом.
Главная идея
Git сохраняет снимки (snapshots) состояния файлов в каждый момент истории, а не только дельты изменений.
Как это выглядит на практике
- Разработчик пишет код и хочет сохранить текущее состояние — делает коммит.
- Через неделю нужно вернуться к старой версии — Git показывает историю.
- Два разработчика работают над разными задачами — каждый в своей ветке.
- Изменения объединяются через merge или rebase.
Что происходит под капотом
- Git хранит данные как объекты в папке .git: blob (файлы), tree (директории), commit (снимок с метаданными), tag.
- Каждый коммит содержит указатель на предыдущий, что образует цепочку истории.
- HEAD — указатель на текущую позицию в истории; обычно он указывает на ветку.
- Git — распределённая система: у каждого разработчика есть полная копия репозитория с историей.
Типичные ошибки и заблуждения
- Ошибка: Git и GitHub — одно и то же. Git — локальный инструмент, GitHub — хостинг для Git-репозиториев.
- Ошибка: Git нужен только в командах. Даже соло-разработчику он экономит время на откат и эксперименты.
- Ошибка: коммит — это 'сохранение файла'. Коммит — снимок всего репозитория в определённый момент.
- Ошибка: ветки — это копии папок. Ветки — лишь лёгкие указатели на коммиты.
Ключевые выводы
- VCS хранит историю и позволяет откатываться к любой точке прошлого.
- Git — распределённая система: полная история у каждого участника.
- Коммит — снимок состояния, а не набор изменений.
- Ветки легковесны и создаются мгновенно.
Термины урока
Связь с работой backend-разработчика
Для backend-разработчика Git — ежедневный инструмент: без него невозможно работать в команде, деплоить код через CI/CD или откатывать продакшен при ошибке.
Мини-разбор реальной ситуации
Разработчик выкатил новую фичу, которая сломала API. Без Git единственный выход — вручную откатывать изменения. С Git — одна команда git revert или git reset возвращает рабочее состояние за секунды.
Что запомнить
- Git — это не резервная копия, а инструмент управления историей.
- Коммиты должны быть атомарными: одна логическая задача — один коммит.
- Каждый разработчик работает с полной копией репозитория.
Итог
Git — основа современной разработки. Понимание его модели данных делает работу с ним предсказуемой, а не магической.