$ 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 - фундамент, без которого остальное держится плохо.
Часть 0
Перед началом
1 глава · ~8 мин
Предисловие. Зачем ещё одна книга про Git, для кого она, что предполагается и как читать. Сквозной проект - сайт-портфолио на GitHub Pages, к концу книги он будет работать.
00-preface →Часть I
Что такое Git и зачем
2 главы · ~65 мин
Эволюция систем контроля версий: от ручного `report_v3_FINAL.docx` до распределённого Git. История с BitKeeper-кризисом 2005 года. Первый репозиторий за десять минут: `git init`, `add`, `commit`, `log`, `status` - без углубления в устройство.
01-why-vcs →Часть 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 →Часть III
Ежедневный Git
5 глав · ~250 мин
Ветки как указатели, а не как папки. Коммиты по-взрослому: атомарность, conventional commits, hunks через `add -p`. Merge против rebase - главная развилка. Отмена без паники: `reset`, `revert`, `reflog`, `git restore`. Расследование истории: `log`, `blame`, `bisect`.
06-branches →Часть 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 →Часть 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. Выбери себе ближе. Если ошибёшься - мостики внутри глав подскажут вернуться или пройти быстрее.
С самого начала
Git не открывал или открывал «по памяти»
→ 00-preface
База есть, нужна модель
Коммитишь, но не знаешь что внутри
→ 03-object-model
К ежедневной работе
Ветки, rebase, отмена, расследование
→ 06-branches
$ или просто 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.