Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Як Git зберігає дані?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Git** зберігає дані не як набір відмінностей (diff'ів), а як знімки (snapshots) стану проекту. **Ключове:** Git зберігає дані як набір знімків проекту, використовуючи об'єкти (blob, tree, commit), а не як diff'и між версіями.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняGit зберігає дані **не як набір відмінностей (diff'ів)**, а як **знімки (snapshots) стану проекту**. ## Ключова ідея Кожен коміт - це **повний знімок усіх файлів проекту** на момент коміту. Якщо файл **не змінився**, Git **не дублює його**, а просто **посилається** на вже збережену версію. ## З чого складаються дані в Git Git зберігає все у вигляді **об'єктів**: 1. **Blob** - вміст файлу > Зберігає лише дані файлу, без імені та шляху. 2. **Tree** - структура каталогів > Пов'язує імена файлів і папок з blob'ами та іншими tree. 3. **Commit** - знімок проекту > Містить: - посилання на tree (стан файлів), - посилання на батьківські коміти, - автора, дату, повідомлення. 4. **Tag** - іменоване посилання > Зазвичай вказує на конкретний коміт (наприклад, реліз). ## Як Git економить місце - незмінені файли **не копіюються**; - використовується **хешування (SHA-1 / SHA-256)**; - однаковий вміст -> **один і той самий об'єкт**. ## Чому це важливо - швидкі операції (commit, checkout, branch); - цілісність даних (будь-яка зміна змінює хеш); - гілки - це **просто вказівники на коміти**, а не копії коду. ## Коротко для співбесіди > **Git зберігає дані як набір знімків проекту, використовуючи об'єкти (blob, tree, commit), а не як diff'и між версіями.**Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.