Большинство разработчиков ни разу не открывали папку
А именно там находится всё, что делает Git Gitом.
Git не является системой отслеживания изменений во времени. Git представляет собой content-addressable storage, построенное на основе направленного ациклического графа (DAG).
Все операции происходят внутри
Git хеширует данные файлов и сохраняет их в виде четырёх типов объектов:
Blob → хранит только содержимое файла. Без имени файла, без пути. Два одинаковых файла в разных каталогах будут ссылаться на один и тот же blob.
Tree → хранит соответствие между именами файлов, правами доступа, путями и хешами blob-объектов или дочерних tree-объектов.
Commit → содержит ссылку на корневой tree-объект, а также информацию об авторе, временную метку и ссылку на родительский коммит.
Annotated Tag → содержит ссылку на коммит и собственные метаданные: имя автора тега, дату создания и сообщение тега.
Эти объекты образуют DAG:
Directed — дочерние объекты указывают на родительские.
Acyclic — ни один коммит не может ссылаться обратно на самого себя через цепочку связей.
Когда вы создаёте ветку, Git записывает один текстовый файл размером около 41 байта в:
Этот файл содержит:
Именно этот файл и представляет собой всю ветку.
Git не хранит файлы. Git хранит содержимое, связи между объектами и историю изменений.
Поймите устройство объектов Git. Освойте граф. Тогда станет понятно, как Git работает на самом деле.
#Git
👉 Java Portal
.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
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Java Portal | Программирование
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика
Связь: @devmangx
РКН: https://clck.ru/3H4WUg
Связь: @devmangx
РКН: https://clck.ru/3H4WUg
👍5