Как Git работает изнутри: интерактивный гайд для разработчиков
Нашёл подробное руководство Software Atlas, которое объясняет устройство Git на уровне объектов, хешей и указателей.
Обычно мы используем commit, merge, rebase и reset, но редко задумываемся, что именно происходит внутри .git.
Например, Git хранит коммиты как снимки состояния проекта, а не просто списки изменений. При этом неизменённые файлы не дублируются, а переиспользуются через ссылки на существующие объекты.
В руководстве подробно разбираются:
- blob, tree, commit и хранение объектов по хешам.
- Как устроены HEAD, ветки и staging area.
- Почему rebase создаёт новые коммиты с другими хешами.
- Чем отличаются reset, restore и revert.
- Как восстановить потерянные коммиты через reflog.
- Как работают packfiles, сборка мусора и SHA-256.
Особенно понравилась практическая часть. Можно самостоятельно исследовать внутренности репозитория:
git cat-file -p HEAD
git ls-tree -r HEAD
git ls-files --stage
git reflog
Внутри 14 разделов, 8 интерактивных визуализаций и примеры с реальным выводом команд. Есть даже разбор вычисления Git-хешей на Go и JavaScript.
После такого руководства rebase и reset --hard становятся гораздо понятнее, потому что начинаешь видеть, какие объекты создаются и куда перемещаются указатели.
https://software-atlas.haiduc0147.dev/t/git-internals
Просмотры: 862