Git хранит снимки проекта во времени. Ветка — подвижный указатель на коммит. Слияние объединяет истории (часто после ревью). Pull request (merge request) — социальный слой: обсуждение diff, CI, затем интеграция.
Виджеты урока: git-graph показывает топологию — так видно, почему конфликты возникают на слиянии. Pipeline — путь изменения от редактора до общего remote. Code explorer разбирает команды. Таблица — merge vs rebase. Вкладки — синхронизация и откат.
Сначала смотрите на граф: main прошёл c1 → c2, ветка feature/login добавила c3 поверх c2. Слияние влило c3 в main как c4. Если бы двое правили одни строки после c2, Git остановился бы на конфликте — нужно собрать итоговый файл вручную.
Файлы в рабочей директории. `git add` кладёт снимок в индекс (staging). `git commit` фиксирует его в локальном репозитории. `git push` отправляет коммиты на remote (например origin).
Шаги pipeline: Правки — ещё не в истории. Индекс — что войдёт в следующий коммит (`git diff --cached`). Коммит — локальный DAG. Push публикует; до него CI и бэкапы «не видят» работу. PR — ревью и проверки до попадания в main.
Code explorer: строки идут в порядке ветка → статус → diff → индекс → коммит → push. В новых версиях Git для веток предпочтительны `git switch` / `git restore`.
Оба способа подтянуть main в feature. Merge добавляет merge-коммит (как c4). Rebase переписывает коммиты поверх main — линейная история, но меняются SHA. Не делайте rebase опубликованных коммитов, от которых ответвились другие.