Модуль 7 · Урок 25
Repository, staging і атомарні commits
Git записує не «файл, який ви редагували», а перевірений snapshot із staging area. Надійний цикл — inspect → select → verify → commit: status називає стан, два види diff показують unstaged і staged зміни, а commit містить лише усвідомлений scope.
Чотири стани, які не слід плутати
| Область | Що містить | Як перевірити |
|---|---|---|
| Working tree | Поточні файли на диску | git status, git diff |
| Index/staging | Snapshot для наступного commit | git diff --staged |
| HEAD | Поточний checked-out commit/branch tip | git show HEAD |
| Repository | Objects, refs і history у .git | git log --oneline |
Безпечний commit loop
git status
git diff -- index.html
git add index.html
git diff --staged
git commit -m "Add semantic reading list"
git statusgit add копіює обрану версію content в index; подальше редагування того самого файла лишається unstaged. Тому staged diff перевіряють безпосередньо перед commit. Message пояснює outcome/intent, а не «changes».
Ignore до tracking, не після витоку
.gitignore описує untracked paths, які Git не має пропонувати. Він не припиняє tracking уже committed файла й не стирає старі objects. Перед першим add перевірте editor files, build output, logs і environment files; ніколи не вставляйте real token навіть у навчальний example.
Практика
Ініціалізуйте копію starter, створіть три commits за commit-plan.csv. Для кожного збережіть status before, staged diff summary, перевірку і final one-line log.
Офіційні джерела
Закріпіть матеріал уроку
Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.