Як Git зберігає дані?
Git зберігає дані не як набір відмінностей (diff'ів), а як знімки (snapshots) стану проекту.
Ключова ідея
Кожен коміт - це повний знімок усіх файлів проекту на момент коміту. Якщо файл не змінився, Git не дублює його, а просто посилається на вже збережену версію.
З чого складаються дані в Git
Git зберігає все у вигляді об'єктів:
- Blob - вміст файлу
Зберігає лише дані файлу, без імені та шляху.
- Tree - структура каталогів
Пов'язує імена файлів і папок з blob'ами та іншими tree.
- Commit - знімок проекту
Містить:
- посилання на tree (стан файлів),
- посилання на батьківські коміти,
- автора, дату, повідомлення.
- Tag - іменоване посилання
Зазвичай вказує на конкретний коміт (наприклад, реліз).
Як Git економить місце
- незмінені файли не копіюються;
- використовується хешування (SHA-1 / SHA-256);
- однаковий вміст -> один і той самий об'єкт.
Чому це важливо
- швидкі операції (commit, checkout, branch);
- цілісність даних (будь-яка зміна змінює хеш);
- гілки - це просто вказівники на коміти, а не копії коду.
Коротко для співбесіди
Git зберігає дані як набір знімків проекту, використовуючи об'єкти (blob, tree, commit), а не як diff'и між версіями.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.