Что такое Git и зачем он нужен
Представь, что ты пишешь код. Что-то сломалось. Хочешь вернуться к версии, которая работала — но нет никакой истории. Только один файл main_final_v3_FINAL2.js.
Это жизнь без Git. Один раз попав в такую ситуацию — понимаешь, зачем он нужен.
Что такое Git
Git — это система контроля версий. Она сохраняет историю изменений твоего кода: кто, что и когда изменил. Можно откатиться к любой точке в прошлом, работать параллельно в нескольких ветках, и спокойно экспериментировать — ничего не потеряется.
Git придумал Линус Торвальдс (тот самый, что создал Linux) в 2005 году за несколько недель. Он написал его потому, что существующие системы его не устраивали. Сегодня им пользуются почти все разработчики на планете.
Три зоны Git
Вот что важно понять с самого начала — у Git три зоны:
Рабочая папка → Staging Area → Repository
(твои файлы) (git add) (git commit)
Working Directory — обычная папка с файлами. Ты редактируешь файлы здесь.
Staging Area (индекс) — промежуточная зона. Ты явно выбираешь, что войдёт в следующий коммит. Это даёт контроль — можно закоммитить только часть изменений.
Repository — история коммитов. Каждый коммит — это снимок всего проекта в момент времени. Снимки связаны между собой в цепочку.
Попробуй сам
Ниже — интерактивная визуализация всех трёх зон. Кликай на файлы в рабочей папке, чтобы добавить их в staging. Потом коммить.
Вот что происходит за кулисами:
git add index.js— файл переходит из рабочей папки в staginggit add .— добавляет все изменённые файлыgit commit -m "сообщение"— фиксирует staging как новый снимок в истории
Почему staging вообще нужен?
Это может показаться лишним шагом. Зачем не коммитить напрямую?
Потому что реальная работа не такая чистая. Ты правишь несколько вещей одновременно. Staging позволяет разбить это на логичные атомарные коммиты:
Изменил 5 файлов за день:
- 2 файла: исправил баг в авторизации
- 3 файла: добавил новую фичу
→ git add auth.js login.js
→ git commit -m "fix: авторизация не падает на пустой пароль"
→ git add feature.js utils.js config.js
→ git commit -m "feat: добавил фильтр по категориям"
Два коммита — два понятных изменения. Через месяц ты (или коллега) откроет историю и сразу поймёт, что происходило.
Первые команды
git init # создаём репозиторий в текущей папке
git status # что изменилось?
git add . # добавляем всё в staging
git commit -m "" # фиксируем снимок
git log # смотрим историюЭто весь базовый цикл. В следующем уроке — разберём каждую команду в деталях с практикой.