Пошук уроків, статей та іншого контенту
Три зони Git — робоча директорія, staging area, репозиторій — та базовий цикл git add / commit.
Команда git init перетворює звичайну папку на Git-репозиторій — створює приховану підпапку .git, де Git зберігає всю історію змін, конфігурацію та метадані. Файли проєкту лишаються на своїх місцях, змінюється лише те, що тепер Git відстежує зміни в цій папці.
mkdir my-project
cd my-project
git initРобоча директорія (working directory) — фактичні файли на диску, які редагує розробник у звичайному редакторі коду.
Область підготовки (staging area, чи index) — проміжний список змін, обраних для наступного коміту; не всі зміни в робочій директорії обов'язково потрапляють у наступний коміт одразу.
Репозиторій (.git) — постійна історія всіх зафіксованих комітів.
Робоча директорія --git add--> Staging area --git commit--> Репозиторій
(редагування файлів) (вибір змін) (постійна історія)git add index.js # додати конкретний файл у staging area
git add . # додати всі змінені файли поточної папки
git commit -m "Додати обробку форми логіну" # зафіксувати staged-зміни як новий комітgit add переносить зміни з робочої директорії в staging area — це навмисний проміжний крок, що дозволяє обрати для коміту лише частину змінених файлів, а не автоматично комітити геть усе, що змінилось. git commit фіксує вміст staging area як новий, постійний запис в історії з обов'язковим повідомленням, що пояснює зроблену зміну.
git status — найчастіше використовувана команда Git: показує, які файли змінені, які вже в staging area, а які ще ні. Звичка перевіряти git status перед комітом — базова гігієна, що запобігає випадковому комітуванню не тих файлів.
Не всі файли проєкту варто комітити — залежності (node_modules), згенеровані артефакти збірки, файли із секретами (.env). Файл .gitignore перелічує шаблони шляхів, які Git ігнорує повністю — вони не з'являються ні в git status, ні можуть бути випадково додані git add . :
node_modules/
.env
.next/
dist/
*.logСекретний файл, вже раз закомічений у git, лишається в історії репозиторію назавжди — навіть якщо пізніше його видалити й додати в .gitignore, стара версія з секретом досяжна через історію комітів. Секрети, що потрапили в комітнуту історію, варто вважати скомпрометованими й ротувати (генерувати нові), а не просто видаляти файл.
git add . без перегляду git status — легко ненавмисно додати в staging area файли, які не мали туди потрапити (тимчасові файли, локальну конфігурацію).
Коміт секретів (.env з реальними ключами) без .gitignore — навіть у приватному репозиторії секрет варто вважати скомпрометованим одразу після коміту.
Комітувати node_modules чи інші згенеровані артефакти — роздуває розмір репозиторію даремно, бо ці файли й так відновлюються командою встановлення залежностей.
Git організовує роботу через три зони: робочу директорію (файли на диску), staging area (обрані для наступного коміту зміни) і репозиторій (постійна історія). git add переносить зміни в staging area, git commit фіксує їх у постійній історії з повідомленням. .gitignore виключає файли (залежності, секрети, згенеровані артефакти), які Git ніколи не повинен відстежувати.