В этом уроке — карта всего курса. Цель не запомнить, а получить ощущение, что вас ждёт впереди: какие темы пойдут когда, что зависит от чего, и в какой момент урок «настоящего инструмента» станет применим в реальной работе.
Курс структурирован как пирамида. Каждый последующий модуль опирается на предыдущие. Пропускать модули можно, но в большинстве случаев — себе во вред. К шестому модулю вы будете спокойно работать с локальным репозиторием. К одиннадцатому — уверенно с удалённым. К шестнадцатому — на уровне Middle.
Самый первый модуль после введения — 01 «С нуля» — рассчитан на абсолютного новичка: если ты только что прошёл computing-basics (Ступень 0) и Git видишь впервые, начинаешь именно отсюда, и тебя ведут за руку. Если же базовый Git тебе знаком, пробежишь этот модуль за полчаса и пойдёшь дальше.
Структура курса в одной диаграмме
Дорожная карта курса
22 модуля, разбитые на 4 содержательных блока. Стрелки — направление обязательной зависимости.
00-05Фундамент: введение, старт с нуля, история VCS, установка, three trees, ветки. Без этого блока остальное не имеет смысла
dependencies
06-11Ежедневная работа: remotes, конфликты, rebase, история, reflog, stash. То, что Junior делает каждый день
12-16Командная работа: PR, workflows, .gitignore, LFS, хуки. То, что отличает соло-разработчика от командного игрока
Цель блока — вы должны спокойно создавать репозиторий, делать коммиты, переключаться между ветками и делать простые merges. Начинается он с модуля «С нуля» для абсолютных новичков, поэтому если ты пришёл совсем без опыта — закладывай чуть больше времени. Если после этого блока вы ещё не уверены — не идите дальше, перечитайте.
Модули 00-05 — фундамент
00 Intro3 урока: про курс, обзор модулей, как учиться. ~30 минут чтения
01 С нуля3 урока для абсолютного новичка: зачем нужны версии, твой первый репозиторий и первый коммит, второй коммит. Ведёт за руку. ~1 час
02 Что такое Git4 урока: история VCS, distributed vs centralized, snapshots vs deltas, почему Git победил. ~1 час
03 Установка4 урока: установка на 3 OS, git config, SSH-ключи (ed25519), GPG/SSH подписи коммитов. ~1.5 часа
04 Три дерева5 уроков: working tree/index/repo, git init, add/commit/status, анатомия commit, blob/tree/commit objects. ~2 часа. КЛЮЧЕВОЙ модуль
05 Ветки и merge5 уроков: что такое ветка (41 байт!), создание веток, fast-forward, three-way merge, HEAD/detached HEAD. ~2 часа
Особое внимание модулю 04 — это самый важный модуль курса. Если вы поймёте три дерева и модель объектов Git, то всё остальное в курсе будет лёгким. Если не поймёте — будете путаться даже в git commit -am.
Модули 06-11: Ежедневная работа
Здесь начинается «настоящая жизнь». Вы будете работать с удалёнными репозиториями (GitHub/GitLab), решать конфликты, переписывать историю через rebase, искать баги через git log и git bisect, и восстанавливать «потерянные» коммиты через reflog.
Модули 06-11 — ежедневная работа
06 Remotesorigin, upstream, fetch vs pull vs push, отслеживающие ветки, форки. Здесь впервые видишь GitHub
07 ConflictsКак Git понимает, что у нас конфликт, маркеры конфликта, mergetool, стратегии разрешения, длинные конфликты
08 Rebaserebase vs merge, interactive rebase (squash/fixup/reword), КОГДА можно rebase публичных веток (НИКОГДА)
09 Историяgit log с фильтрами, git diff, git blame, git bisect (бинарный поиск багов), git show
10 Refloggit reset --soft/mixed/hard, git revert, git reflog, восстановление удалённых коммитов и веток. СПАСАЕТ КАРЬЕРУ
11 Stash/Tagsgit stash (временно отложить изменения), теги lightweight vs annotated, cherry-pick (перенос commit между ветками)
Это самый объёмный блок курса — около 18-20 часов. Здесь начинается реальная разница между Junior, который понимает Git, и Junior, который умеет только git add . && git commit -m "fix".
WARNING
Не пропускайте модуль 10 «Reflog». Однажды вы случайно удалите ветку, в которой неделя работы. Reflog — это инструмент, который восстанавливает её за 30 секунд. Junior без знания reflog в такой ситуации сидит и горько плачет.
Модули 12-16: Команда
В этом блоке — переход от соло-разработчика к командному игроку. Pull Requests, code review, выбор workflow для команды, правильный .gitignore (чтобы не запушить .env с паролями), Git LFS для больших файлов, хуки и pre-commit автоматизация.
Модули 12-16 — командная работа
12 Pull RequestsСоздание PR на GitHub, как описать PR, как делать code review, как реагировать на review, draft PRs, squash vs merge
13 WorkflowsGitHub Flow (простой), GitFlow (избыточен для большинства), trunk-based (быстрый). Что выбрать для команды
14 .gitignore.gitignore паттерны, .gitattributes (line endings, diff drivers), что НЕ коммитить (секреты, кэши, бинарники)
15 LFSGit LFS для больших файлов (модели ML, образцы данных), когда нужен LFS и когда нет, цена LFS на GitHub
16 Хукиpre-commit хуки, pre-commit framework (Python), husky (JS), что валидируется на commit time
После этого блока вы будете готовы пройти первое собеседование на Junior DE и работать в команде с минимальным надзором.
Модули 17-21: Production
Финальный блок. Здесь — продвинутые темы, которые встречаются на работе у Junior DE через 3-6 месяцев: submodules для подключения внешних репозиториев (часто в DE-инфраструктуре), секреты и git-crypt/age/Vault, CI/CD через GitHub Actions, восстановление сломанного репозитория, и финальный capstone-проект.
Модули 17-21 — production
17 SubmodulesGit submodules (вложенные репозитории), worktrees (несколько checkout одного репо), subtrees (альтернатива submodules). Реальные кейсы DE
18 СекретыПочему НЕЛЬЗЯ коммитить секреты, что делать если случайно закоммитил, git-secrets, BFG Repo-Cleaner, переписывание истории
19 GitHub ActionsCI/CD basics, workflow YAML, GitHub-hosted runners, кэширование, секреты в Actions, типичные CI для DE (тесты + lint + dbt run)
20 Восстановлениеgit fsck, повреждение objects, восстановление .git/, миграция между хостингами (GitHub -> GitLab)
Курс рассчитан на 50-55 часов чистого времени. Это включает чтение, упражнения и квизы, но не включает реальную работу над собственным проектом.
Варианты темпа прохождения курса
Спринт2 модуля в день. Не рекомендуется, мышечная память не успевает закрепиться. Можно для повторения, если вы уже что-то знали
Стандарт1 модуль в день. Рабочий темп. Утром или вечером 2-3 часа на модуль, упражнения, квиз
Спокойно1 модуль за 2 дня. Когда совмещаешь с другими занятиями (работа, учёба). Лучше для усвоения
Лично я рекомендую стандартный темп — модуль в день, 3-4 недели — с одной оговоркой: после модулей 04, 05, 08 и 10 устройте день паузы. Эти модули перегружены концептами, и мозгу нужно время «уложить» новое знание в долгосрочную память. После паузы вы вернётесь и обнаружите, что куски, которые казались мутными, стали очевидными.
Что после курса
Курс «Git для Junior DE» — самостоятельный продукт, который закрывает версионирование кода. Дальше вам пригодятся:
Курс «SQL Fundamentals» — если ещё не знаете SQL глубже SELECT
Курс «Python Fundamentals» — если Python пока шатается
Курс «Airflow» — следующий шаг в DE-стеке после Git
Курс «System Design для DE» — когда захотите идти на Middle
Все курсы бесплатные, на этой же платформе. Cross-link на них появится в каждом релевантном уроке.
В следующем уроке поговорим, как именно учиться: какие привычки нарабатывать, как организовать терминал, и почему ваш собственный «git-sandbox» — обязательная часть учёбы.
Проверка знанийKnowledge check
Почему в курсе блок «Фундамент» (модули 00-05) занимает примерно столько же времени, сколько весь блок «Ежедневная работа» (модули 06-11)? Не лучше ли быстрее перейти к реальным инструментам?
ОтветAnswer
Потому что фундамент — это то, что определяет всё дальнейшее понимание. Если вы не понимаете three trees (модуль 04) — вы будете путаться в каждом конфликте. Если не понимаете, что ветка — это просто SHA-указатель (модуль 05) — rebase будет казаться магией. Опыт показывает: Junior, который потратил на фундамент 8 часов и понял глубоко, в итоге проходит остальной курс быстрее, чем Junior, который пробежал фундамент за 2 часа и теперь возвращается к каждой главе с вопросом «а как это связано». Не торопитесь.
Проверьте понимание
Результат: 0 из 0
Концептуальный
Закончили урок?
Отметьте его как пройденный, чтобы отслеживать свой прогресс