TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #2398 1.48K
Большинство разработчиков ни разу не открывали папку .git.
А именно там находится всё, что делает Git Gitом.

Git не является системой отслеживания изменений во времени. Git представляет собой content-addressable storage, построенное на основе направленного ациклического графа (DAG).

Все операции происходят внутри .git/objects/.
Git хеширует данные файлов и сохраняет их в виде четырёх типов объектов:

Blob → хранит только содержимое файла. Без имени файла, без пути. Два одинаковых файла в разных каталогах будут ссылаться на один и тот же blob.

Tree → хранит соответствие между именами файлов, правами доступа, путями и хешами blob-объектов или дочерних tree-объектов.

Commit → содержит ссылку на корневой tree-объект, а также информацию об авторе, временную метку и ссылку на родительский коммит.

Annotated Tag → содержит ссылку на коммит и собственные метаданные: имя автора тега, дату создания и сообщение тега.
Эти объекты образуют DAG:

Directed — дочерние объекты указывают на родительские.
Acyclic — ни один коммит не может ссылаться обратно на самого себя через цепочку связей.

Когда вы создаёте ветку, Git записывает один текстовый файл размером около 41 байта в:
.git/refs/heads/<имя-ветки>


Этот файл содержит:
40-символьный SHA-1 хеш
символ перевода строки в конце


Именно этот файл и представляет собой всю ветку.

Git не хранит файлы. Git хранит содержимое, связи между объектами и историю изменений.
Поймите устройство объектов Git. Освойте граф. Тогда станет понятно, как Git работает на самом деле.
#Git

👉 Java Portal
Telegram Java Portal | Программирование Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg
  • 👍 5
More from @java_iibrary
  1. Sep 24, 2026Java-разработчики, в чём разница между volatile и synchronized? Многие используют их. Но в…
  2. Sep 23, 2026Готовимся к System Design интервью уровня Middle и Senior Полезный конспект по проектирова…
  3. Sep 23, 2026Java-разработчики, знаете разницу между Shallow Copy и Deep Copy? Вы копируете объект, но…
  4. Sep 22, 2026Java-разработчики: Почему ArrayList увеличивает свою ёмкость примерно на 50%, когда заканч…
  5. Sep 22, 2026Прогрев от Java-бабули 🙂 👉 Java Portal
  6. Sep 21, 2026Шпаргалка по проектированию веб систем System Design 101 Подробное руководство по архитект…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →