Начальный ~15 мин чтения

Что такое VCS и зачем нужен Git

Урок 1 из 5 в курсе Git для разработчика

Что такое VCS и зачем нужен Git

система контроля версий хранит историю изменений кода и позволяет нескольким разработчикам работать над одним проектом.

Почему это важно: Без понимания зачем вообще нужен VCS, Git воспринимается как набор непонятных команд. Знание цели помогает выбирать правильные инструменты и понимать, что происходит под капотом.

Главная идея

Git сохраняет снимки (snapshots) состояния файлов в каждый момент истории, а не только дельты изменений.

Как это выглядит на практике

  1. Разработчик пишет код и хочет сохранить текущее состояние — делает коммит.
  2. Через неделю нужно вернуться к старой версии — Git показывает историю.
  3. Два разработчика работают над разными задачами — каждый в своей ветке.
  4. Изменения объединяются через merge или rebase.

Что происходит под капотом

  • Git хранит данные как объекты в папке .git: blob (файлы), tree (директории), commit (снимок с метаданными), tag.
  • Каждый коммит содержит указатель на предыдущий, что образует цепочку истории.
  • HEAD — указатель на текущую позицию в истории; обычно он указывает на ветку.
  • Git — распределённая система: у каждого разработчика есть полная копия репозитория с историей.

Типичные ошибки и заблуждения

  • Ошибка: Git и GitHub — одно и то же. Git — локальный инструмент, GitHub — хостинг для Git-репозиториев.
  • Ошибка: Git нужен только в командах. Даже соло-разработчику он экономит время на откат и эксперименты.
  • Ошибка: коммит — это 'сохранение файла'. Коммит — снимок всего репозитория в определённый момент.
  • Ошибка: ветки — это копии папок. Ветки — лишь лёгкие указатели на коммиты.

Ключевые выводы

  • VCS хранит историю и позволяет откатываться к любой точке прошлого.
  • Git — распределённая система: полная история у каждого участника.
  • Коммит — снимок состояния, а не набор изменений.
  • Ветки легковесны и создаются мгновенно.

Термины урока

Repository (репозиторий): папка с кодом под управлением Git.
Commit: снимок состояния репозитория с сообщением и метаданными.
Branch (ветка): именованный указатель на коммит.
HEAD: указатель на текущую позицию в истории.

Связь с работой backend-разработчика

Для backend-разработчика Git — ежедневный инструмент: без него невозможно работать в команде, деплоить код через CI/CD или откатывать продакшен при ошибке.

Мини-разбор реальной ситуации

Разработчик выкатил новую фичу, которая сломала API. Без Git единственный выход — вручную откатывать изменения. С Git — одна команда git revert или git reset возвращает рабочее состояние за секунды.

Что запомнить

  • Git — это не резервная копия, а инструмент управления историей.
  • Коммиты должны быть атомарными: одна логическая задача — один коммит.
  • Каждый разработчик работает с полной копией репозитория.

Итог

Git — основа современной разработки. Понимание его модели данных делает работу с ним предсказуемой, а не магической.