Логотип Workflow

Article

Updated at:

Introduction To Git And Version Control

Этап 1 - Введение в Git и контроль версий

Начнем с реальной ошибки: у команды есть учебный проект task-service, и два человека одновременно меняют task-service.js и README. Через час один из них «забыл» своё изменение, второй считает, что в продакшн уже залил правильную версию. И начинается спор, потому что по обычным папкам «копия_финал» такой вопрос не решить.

Git — это не «сохранить файл на диске». Это механизм для создания именованных контрольных точек истории проекта. Каждый commit объясняет, что изменилось и почему, плюс фиксирует автора и момент времени. Точно это и нужно, когда нужно доказать, где уехала логика сортировки задач или откуда появилась ошибка.

Лента истории Git

Главное различие от обычной синхронизации файлов: 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, и почему история изменений важнее, чем «последний сохранённый файл».