0.1 Зачем ещё одна книга
Без ответа на главный вопрос Git превращается в магический ящик.
Команды запоминаются на память. При первой непонятной ситуации -
паника, гугл, копипаста с Stack Overflow, иногда rm -rf .git и
заново.
Эта книга устроена по-другому. Сначала - модель. Что такое коммит.
Где он живёт. Из чего состоит. Что значит SHA в начале строки. Что
лежит в .git/objects/. Только потом - команды.
Если читатель доберётся до главы 5, он будет понимать Git лучше, чем 80 процентов разработчиков с пятью годами опыта. Это не потому, что 80 процентов глупые. Это потому, что им никто не показал.
0.2 Для кого книга
- Тем, кто слышал про Git, видел кнопки в IDE, но при словах
«rebase» и
reset --hardнапрягается. - Самоучкам, у которых «работает по памяти», но при первом конфликте - паника.
- Студентам, которым нужно собрать GitHub-профиль и понимать pull request flow на стажировке.
- Тимлидам, которые выбирают branching-стратегию и хотят понимать trade-offs.
Не для тех, кто пишет ядро Git. И не для тех, кому нужно «за 15 минут» - за 15 минут читается только cheatsheet.
0.3 Что предполагается
Базовая работа в терминале. Если cd, ls и mkdir не вызывают
вопросов - этого хватит. Конкретный язык программирования не важен.
Примеры идут на простых текстовых файлах, иногда - на HTML/CSS.
0.4 Как читать
По порядку. Главы выстроены так, что каждая опирается на предыдущую. Прыжки разрешены, но в Части I и II есть фундамент, без которого всё остальное держится плохо.
Каждая глава заканчивается резюме и контрольными вопросами. Резюме - не обязательно, для тех кто читает быстро и хочет закрепить. Вопросы - обязательно. Если на них не отвечаешь - возвращайся в текст.
В главах есть три типа врезок:
- Копнуть глубже - историческая справка или углублённый
материал. Можно пропустить.
- Подводный камень - типовая ошибка с объяснением, почему так получается.
- Лаба - практика. Эти пропускать не стоит. Без рук Git не учится.
0.5 Сквозной пример
Через всю книгу идёт один репозиторий - персональный сайт-портфолио. К концу книги это работающий сайт на GitHub Pages с автоматическим деплоем через Actions. Если уже есть собственный проект - подставляй его. Конкретные файлы в примерах не важны, важна структура.
0.6 Что не входит
- Контрибьютинг в само ядро Git. Это тема для совсем другой книги.
- Сравнение всех GUI-клиентов. Достаточно того, что они есть.
- Сертификации. Их по Git нет, и слава богу.
- Bitbucket, GitLab, Gitea подробно. По ним есть отдельное приложение с мэппингом понятий - если работаешь не с GitHub, читай его параллельно.
0.7 Версии и совместимость
Книга писалась под Git 2.40+. Старые версии (до 2.23, без git switch и git restore) тоже работают, но придётся пользоваться
git checkout для всего сразу - об этом в главе 6.
Большинство примеров - Linux/macOS. На Windows работает всё то же самое через Git Bash, изредка с поправками на пути. Эти места отмечены.
Резюме
- Эта книга - про модель Git, а не про команды.
- Сначала разбираемся в объектной модели, потом учим команды.
- Каждая глава самодостаточна, но порядок имеет значение.
- Сквозной проект - сайт-портфолио, останется как реальный артефакт.