$ cat /intro

Это учебник по Git.
Сначала модель, потом команды.

Не справочник из сорока команд и не туториал по кнопкам GitHub. Это книга, которую можно читать от обложки до обложки - восемнадцать глав, шесть частей, сквозной проект на GitHub Pages, справочник на 60 статей.

Главная идея простая. До главы 3 ни одной команды без объяснения, что она делает с объектами в .git/. Зато к главе 5 ты сам собираешь коммит руками через plumbing - и после этого git rebase уже не кажется чёрной магией.

Можно по порядку, от 00-preface до 17-pr-process - примерно 14 часов чистого чтения с практикой. Можно прыжками, через карту глав или справочник. На стыках частей есть мостики, которые подскажут, если темп не зашёл.

Кому подойдёт

Базовая работа в терминале - всё, что нужно от предыдущего опыта. Если cd, ls и mkdir не вызывают вопросов - этого хватит.

Разработчик «по памяти»
Коммитишь через кнопку в IDE, иногда через `git add . && git commit -m "fix"`. При словах «rebase», `reset --hard` и «detached HEAD» хочется закрыть терминал и пойти пить кофе. Книга закрывает этот страх через понимание, а не через зубрёжку.
Самоучка после YouTube
Посмотрел десяток роликов, повторил, что-то даже заработало. Но первый конфликт слияния или случайный коммит не в ту ветку - и снова Stack Overflow. Книга достраивает фундамент, который ролики обычно пропускают.
Студент перед стажировкой
Нужно собрать GitHub-профиль, открыть первый pull request, не утопить чужой репозиторий. Книга даёт связную картину: от первого `git init` до code review и branch protection.
Тимлид и архитектор
Выбираешь стратегию ветвления для команды, споришь про squash vs merge, объясняешь джунам, почему force-push в `main` - плохо. Книга помогает аргументировать решения, а не повторять «так принято».

Не уверен в терминале? Начни с LinuxLab beginner-трека. Двенадцать уроков, ~4 часа, и базовая работа в shell перестанет быть препятствием.

Почему именно так

Три принципа, на которых держится книга. Если они звучат разумно - читаем дальше. Если нет - возможно, тебе нужен справочник, а не учебник.

Сначала модель
Большинство учебников начинают с двадцати команд и заканчивают на тридцатой. Здесь наоборот: до главы 3 ни одной команды без объяснения, что она делает с объектами в `.git/`. Зато к главе 5 ты сам собираешь коммит руками через plumbing - и после этого `rebase` уже не кажется чёрной магией.
Команды как следствие
Когда понимаешь, что `git commit` - это запись объекта `commit` в `.git/objects/`, передвижение ветки и обновление HEAD, выбор между `--amend`, `--fixup` и `reset --soft HEAD~` становится осмысленным, а не запоминанием рецептов из Stack Overflow.
Глубина по требованию
У каждого шага есть необязательная врезка «копнуть глубже». Если интересно происхождение или граничный случай - разворачиваешь. Если хочется идти быстрее - пропускаешь. Резюме и контрольные вопросы в конце главы проверят, что фундамент остался.

Карта учебника

Шесть частей, восемнадцать глав. Каждая часть опирается на предыдущую. Прыжки разрешены, но в Частях I и II - фундамент, без которого остальное держится плохо.

  1. Часть 0

    Перед началом

    1 глава · ~8 мин

    Предисловие. Зачем ещё одна книга про Git, для кого она, что предполагается и как читать. Сквозной проект - сайт-портфолио на GitHub Pages, к концу книги он будет работать.

    00-preface
  2. Часть I

    Что такое Git и зачем

    2 главы · ~65 мин

    Эволюция систем контроля версий: от ручного `report_v3_FINAL.docx` до распределённого Git. История с BitKeeper-кризисом 2005 года. Первый репозиторий за десять минут: `git init`, `add`, `commit`, `log`, `status` - без углубления в устройство.

    01-why-vcs
  3. Часть II

    Внутренности Git

    3 главы · ~155 мин

    Самая важная часть. Объектная модель: blob, tree, commit, tag. Plumbing-команды (`hash-object`, `cat-file`, `update-index`, `write-tree`, `commit-tree`) против porcelain. Три зоны: working tree, индекс, репозиторий. После этой части Git перестаёт быть магическим ящиком.

    03-object-model
  4. Часть III

    Ежедневный Git

    5 глав · ~250 мин

    Ветки как указатели, а не как папки. Коммиты по-взрослому: атомарность, conventional commits, hunks через `add -p`. Merge против rebase - главная развилка. Отмена без паники: `reset`, `revert`, `reflog`, `git restore`. Расследование истории: `log`, `blame`, `bisect`.

    06-branches
  5. Часть IV

    Совместная работа

    4 главы · ~210 мин

    GitFlow, GitHub Flow, trunk-based - когда какая стратегия и почему. Удалённые репозитории: fetch, pull, push, tracking-ветки, force-with-lease. Submodules, worktrees, sparse checkout - крайние случаи и зачем они нужны. Hooks: автоматизация, pre-commit framework, серверные и клиентские.

    11-branching-strategies
  6. Часть V

    GitHub как платформа

    3 главы · ~165 мин

    GitHub UI как карта местности: где Issues, PR, Actions, Settings и зачем. CLI `gh` - когда быстрее браузера. Pull request как процесс: жизненный цикл, code review, branch protection, CODEOWNERS, required status checks. Главы 18-23 (конфликты, Actions/CI, безопасность, OSS, Pages, AI в Git-флоу) - в работе.

    15-github-ui

Хочется сразу полный список - /chapters. Справочник по понятиям и командам - /kb.

Что встретится в главе

Шесть повторяющихся элементов. Зная их заранее, тратишь меньше внимания на «что это вообще такое».

Главы
Восемнадцать глав в шести частях. Длина - от 8 до 60 минут. У каждой есть короткое intro, 6-10 секций, упражнения, резюме одной фразой и контрольные вопросы. Главы 1-2 бесплатны, остальные открываются по подписке.
Уроки в sandbox
Отдельная вкладка /lessons - sandbox-уроки, привязанные к главам книги. Открываешь главу, рядом запускаешь урок: в браузере поднимается контейнер с git, bash и vim, каждый шаг проверяется автоматически. Сеть air-gapped, никаких обращений к github.com.
Врезки
Три типа. *Копнуть глубже* - история, граничный случай или ссылка на исходники Git. *Подводный камень* - типовая ошибка и почему она получается. *Упражнение* - руки внутри главы, без них Git не учится. Первый тип можно пропускать, второй и третий - нет.
Справочник [[slug]]
Двойные квадратные скобки в исходниках глав рендерятся как ссылки на справочные статьи в /kb. Это не глава, а короткая выжимка по понятию: что это, зачем, типовая команда. 60 статей в 9 категориях: basics, objects, workflow, branching, collab, remote, tools, security, oss.
Сквозной проект
Через всю книгу идёт один репозиторий - сайт-портфолио. К концу книги это работающий сайт на GitHub Pages с автоматическим деплоем через Actions. Можешь подставить свой проект, конкретные файлы не важны - важна структура и история.
Прогресс чтения
У залогиненных пользователей внизу главы есть кнопка «Я прочитал». Прогресс хранится на бэке, не в localStorage - вернёшься с другого устройства, состояние сохранится. Без подписки прогресс работает только для бесплатных глав.

С чего начать

Никаких pre-assessment. Выбери себе ближе. Если ошибёшься - мостики внутри глав подскажут вернуться или пройти быстрее.

$ или просто cd /chapters, там полный список с группировкой по частям.

Чего в книге нет

Границы важнее, чем содержание. Чтобы не было ложных ожиданий.

  • Контрибьютинг в само ядро Git. Это тема для совсем другой книги, и она написана - см. документацию на git-scm.com.
  • Сравнение всех GUI-клиентов. Достаточно того, что они есть. Конкретный выбор - GitHub Desktop, GitKraken, Fork, Sourcetree, IDE - дело вкуса.
  • Bitbucket, GitLab, Gitea в деталях. Концептуально те же pull requests и branch protection, отличия в кнопках. Если работаешь не с GitHub - концепции переносятся, конкретные клики смотри в их документации.
  • Сертификации по Git. Их не существует, и это хорошо. Учебник нужен, чтобы Git работал в руках, а не чтобы повесить корочку на стену.

Главы 18-23 (конфликты слияния, GitHub Actions/CI, безопасность репозитория, open source как процесс, GitHub Pages, AI в Git-флоу) - в следующих вехах. Приложения - cheatsheet, мэппинг GitLab/Bitbucket, рецепты восстановления, глоссарий - после стабилизации основного текста.

Соседние учебники

Git - часть большего стека. Книга самодостаточна, но если хочешь собрать полную картину инфраструктурного инженера, рядом лежат ещё два учебника той же серии.

LinuxLab - 35 глав по Linux и сетям, реальный sandbox в браузере. Если в этой книге терминал кажется чужой средой - закрой пробел там, и Git пойдёт легче.

TerraformLab - 42 урока по Terraform от первого terraform init до custom-провайдера на Go. Логичный следующий шаг после Git: код как инфра, история через коммиты, review через PR.

$ git checkout 00-preface