Робоча директорія, область індексації та локальний репозиторій: розуміння трьох локальних зон Git
By Mirko Peters ·
Опануйте три локальні зони Git: дізнайтеся, як робоча директорія, область індексації та локальний репозиторій працюють разом, щоб ви мали точний контроль над історією проєкту.
Automatically translated with AI from the original post. Read the English original

Розуміння трьох локальних областей Git — робочої директорії, області індексації та локального репозиторію — є необхідним для переходу від хаотичного копіювання файлів до свідомого контролю версій. Цей посібник пояснює, як кожна зона працює, наче фізичний офіс, щоб дати вам точний контроль над історією проєкту.
Головне
- Робоча директорія — це папка активного проєкту, схожа на захаращений робочий стіл, де ви вільно редагуєте файли.
- Область індексації працює як лоток для перевірки: вона містить лише ті конкретні зміни, які ви вибрали за допомогою
git addдля наступної контрольної точки. - Локальний репозиторій слугує картотечною шафою: він постійно записує ваші проіндексовані зміни у структурованій історії комітів.
- Команди git status і git diff є засобами перевірки, які дають змогу переглянути, що відбувається в трьох локальних областях, перш ніж записувати історію.
- Розуміння цих трьох зон запобігає випадковим комітам і допомагає тримати історію проєкту чистою та логічною.
Робоча директорія: ваш активний робочий стіл
Коли ви відкриваєте папку проєкту на комп'ютері й починаєте вносити зміни, ви працюєте безпосередньо в першій локальній зоні Git: робочій директорії. Уявіть цю папку як свій фізичний робочий стіл. Вона містить усі файли, які ви відкриваєте, створюєте, змінюєте або видаляєте, зокрема код веб-сайту, документацію, конфігураційні файли та зображення.
Як і справжній стіл, робоча директорія може захаращуватися, поки ви експериментуєте. Ви можете почати переписувати кнопку входу, помітити помилку в файлі readme і створити експериментальний скрипт для перевірки нового макета. Git не змушує автоматично кожну окрему зміну потрапляти до вашої постійної історії лише тому, що її внесено в цій папці. Ви маєте свободу пробувати ідеї, помилятися й залишати роботу незавершеною, не змінюючи назавжди запис історії проєкту.
Щоб побачити, що змінилося в робочій директорії з моменту останньої збереженої контрольної точки, використовуйте команду git status. Простими словами, запит статусу в Git — це наче перевірка всього, що лежить на вашому столі. Команда визначає змінені, нові та видалені файли і показує, що саме змінилося з моменту останнього коміту.
Область індексації: лоток для перевірки
Область індексації, мабуть, найбільш неправильно розуміється розробниками, які тільки починають працювати з контролем версій, почасти тому, що її назва звучить як таємниче технічне сховище. Натомість уявіть область індексації як лоток для перевірки, що стоїть поруч із вашим столом. До цього лотка ви кладете лише ті зміни, які призначені для наступної контрольної точки.
Припустімо, ранок ви витратили на виправлення критичного посилання для скидання пароля, а паралельно почали експериментальний редизайн екрана привітання. Записати виправлення пароля ви точно хочете, але редизайн незавершений і містить помилки. Ви не хочете, щоб обидві зміни потрапили до одного коміту.
Командою git add разом із файлом скидання пароля ви переносите саме цю завершену зміну в область підготовки (staging area). Попри назву, git add не зберігає вашу роботу остаточно і нічого не надсилає на онлайн-сервер. Він лише готує вибрану версію файлу до наступної контрольної точки. Ця невелика пауза дає вам величезний контроль. Ви можете переглянути підготовлені зміни, прибрати файли, які додали передчасно, або додати інші файли, що належать до тієї самої логічної одиниці роботи.
Локальний репозиторій: шафа з документами
Щойно лоток для перевірки містить саме ті зміни, які ви хочете зберегти, вони переходять до третьої зони Git: локального репозиторію. Якщо робоча директорія — це ваш стіл, а область підготовки — лоток для перевірки, то локальний репозиторій — це ваша захищена шафа з документами.
Локальний репозиторій зберігає всі ваші коміти та історію проєкту безпосередньо на комп'ютері, у прихованих системних папках. Коли ви виконуєте git commit -m "Fix password reset link", Git бере підготовлені зміни з області підготовки і фіксує їх у вигляді постійної іменованої контрольної точки.
Ця архітектура, орієнтована на локальну роботу, означає, що ви можете вести повну й простежувану історію проєкту без підключення до інтернету чи онлайн-хостингу. Усе відбувається безпечно на вашому власному обладнанні. Ваш щоденний робочий процес стає надійним ритмом: ви редагуєте файли в робочій директорії, перевіряєте стан командою git status, вибираєте потрібні зміни за допомогою git add і фіксуєте свій вибір командою git commit.
Висновки
Розуміння різниці між робочою директорією, областю підготовки та локальним репозиторієм змінює підхід до розробки проєктів. Сприймаючи папку як робочий простір, область підготовки як лоток для перевірки, а локальний репозиторій як постійну шафу з документами, ви отримуєте повний контроль над історією проєкту.
Щоб глибше розібратися в основах контролю версій, послухайте повний епізод подкасту M365 FM, у якому Мірко Пітерс простими словами пояснює Git і показує, як ці локальні механізми вписуються в ширші робочі процеси команди.
Поширені запитання
Яка різниця між робочою директорією та областю підготовки?
Робоча директорія — це ваша активна папка проєкту, де ви вільно редагуєте, створюєте і видаляєте файли. Область підготовки — це вибірковий лоток для перевірки, куди ви кладете лише ті зміни, які плануєте включити до наступного коміту.
Чи постійно зберігає git add мої файли?
Ні. Команда git add готує файли, переміщуючи їх в область підготовки, але не записує їх остаточно в історію проєкту і не надсилає в інтернет. Постійний запис відбувається лише тоді, коли ви виконуєте git commit.
Чи можна користуватися Git без онлайн-хостингу?
Так. Git створено для повноцінної роботи локально на вашому комп'ютері. Ви можете створювати локальний репозиторій, робити коміти, керувати гілками та переглядати історію, ніколи не підключаючись до GitHub чи інтернету.
Що робити, якщо я випадково додав файл до області підготовки?
Якщо ви додали файл до області підготовки передчасно, Git пропонує команди скасування (наприклад, git reset), які безпечно вилучають файл з області підготовки і повертають його до робочої директорії без втрати ваших останніх змін.