Знакомство с Git
1Что такое Git и зачем он нужен2Первые шаги: init, add, commit← вы здесь3История и изменения: log и diff
Урок 2~12 минут

Первые шаги: init, add, commit

Теория без практики — ничто. Пройдём весь цикл от пустой папки до первого коммита.

git init — создаём репозиторий

bash
mkdir my-project
cd my-project
git init

Git создаёт скрытую папку .git — это и есть репозиторий. Все снимки, история, ветки — хранятся там. Не удаляй её руками.

Initialized empty Git repository in /my-project/.git/

git status — что происходит?

Первая команда, которую ты будешь запускать постоянно:

bash
git status

Она показывает три группы файлов:

  • Untracked — Git о них не знает, новые файлы
  • Modified — Git знает, файл изменился
  • Staged — готовы к коммиту
On branch main

Untracked files:
  index.js
  style.css
  README.md

nothing added to commit but untracked files present

git add — выбираем что войдёт в снимок

bash
git add index.js        # добавить один файл
git add index.js style.css  # несколько файлов
git add .               # всё в текущей папке
git add src/            # целая папка

После git add запусти git status снова — увидишь файлы в секции Changes to be committed.

Потренируйся в визуализаторе

Кликай на файлы, добавляй в staging по одному или все сразу, пиши сообщение и коммить:

git commit — фиксируем снимок

bash
git commit -m "feat: добавил главную страницу"

Флаг -m — это message, сообщение коммита. Пиши его в настоящем времени, коротко и по делу.

Хорошие сообщения:

feat: добавил авторизацию через email
fix: исправил падение при пустом input
refactor: вынес логику валидации в utils
docs: обновил README

Плохие:

изменения
fix
asdfasdf
работает

Коммит-сообщение — это письмо себе из прошлого. Через месяц ты скажешь спасибо.

git log — смотрим историю

bash
git log
commit a3f7c21 (HEAD -> main)
Author: Ivan Ivanov <ivan@example.com>
Date:   Sat Apr 5 12:00:00 2026

    feat: добавил главную страницу

commit 8b2d4e9
Date:   Sat Apr 5 11:45:00 2026

    init: первый коммит

Компактный вариант:

bash
git log --oneline
a3f7c21 feat: добавил главную страницу
8b2d4e9 init: первый коммит

Типичная ошибка джунов

Забыть про staging и удивляться, почему git commit ничего не фиксирует:

bash
# Неверно — изменения не в staging:
echo "hello" > index.js
git commit -m "добавил hello"  # → nothing to commit
 
# Верно:
echo "hello" > index.js
git add index.js
git commit -m "добавил hello"  # ✓

Всегда: git statusgit addgit commit. Этот цикл в голове навсегда.

git add выбирает ЧТО войдёт в снимок. git commit СОЗДАЁТ снимок. Не перепутай.
Working Directory
📄index.jsuntracked
🎨style.cssuntracked
📝README.mduntracked
⚙️app.jsuntracked
Кликни на файл → git add
Staging Area (Index)
пусто — добавь файлы
Repository (.git)
коммитов пока нет
untracked / modified — в рабочей папке
staged — готово к коммиту
committed — сохранено в истории
🎯
Миссия 1 из 4
Какая команда показывает статус файлов в репозитории?