Git
Chapters ▾ 2nd Edition

1.5 Вступ - Три стани

Три стани

Тепер будьте уважні — це найважливіша річ, яку потрібно запам’ятати, якщо ви хочете щоб подальше вивчення Git пройшло гладко. Git має три основних стани, в яких можуть перебувати ваші файли: збережений у коміті (commited), змінений (modified) та індексований (staged):

  • Збережений у коміті означає, що дані безпечно збережено в локальній базі даних.

  • Змінений означає, що у файл внесено редагування, які ще не збережено в базі даних.

  • Індексований стан виникає тоді, коли ви позначаєте змінений файл у поточній версії, щоб ці зміни ввійшли до наступного знімку коміту.

З цього випливають три основні частини проекту під управлінням Git: директорія Git, робоче дерево та індекс.

Робоче дерево, індекс та директорія Git.
Figure 6. Робоча директорія, індекс та директорія Git.

У директорії Git система зберігає метадані та базу даних об’єктів вашого проекту. Це найважливіша частина Git, саме вона копіюється при клонуванні сховища з іншого комп’ютеру.

Робоче дерево — це одна окрема версія проекту, взята зі сховища. Ці файли видобуваються з бази даних у теці Git та розміщуються на диску для подальшого використання та редагування.

Індекс — це файл, що зазвичай знаходиться в директорії Git і містить інформацію про те, що буде збережено у наступному коміті. Також цей файл називають “областю додавання” (staging area), проте ми переважно будемо користуватись технічним терміном Git “індекс”.

Найпростіший процес взаємодії з Git виглядає приблизно так:

  1. Ви редагуєте файли у своїй робочій директорії.

  2. Вибірково надсилаєте до індексу лише ті зміни, що їх ви бажаєте зберегти в наступному коміті, і лише ці зміни буде збережено в індексі.

  3. Створюєте коміт: знімок з індексу остаточно зберігається в директорії Git.

У випадку, якщо окрема версія файлу вже є в директорії Git, цей файл вважається збереженим у коміті. Якщо він зазнав змін і перебуває в індексі, то він індексований. Якщо ж його стан відрізняється від того, який був у коміті, і файл не знаходиться в індексі, то він називається зміненим. У Основи Git ви дізнаєтесь більше про ці стани, а також про те, як використовувати їхні переваги або взагалі пропускати етап індексу.