Модуль 7 · Урок 25

Repository, staging і атомарні commits

Git записує не «файл, який ви редагували», а перевірений snapshot із staging area. Надійний цикл — inspect → select → verify → commit: status називає стан, два види diff показують unstaged і staged зміни, а commit містить лише усвідомлений scope.

Working treeIndexHEADAtomic commit

Чотири стани, які не слід плутати

ОбластьЩо міститьЯк перевірити
Working treeПоточні файли на дискуgit status, git diff
Index/stagingSnapshot для наступного commitgit diff --staged
HEADПоточний checked-out commit/branch tipgit show HEAD
RepositoryObjects, refs і history у .gitgit 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 status

git 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.

Офіційні джерела

Практична перевірка · урок 25 з 60

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Що показує git status?
2. Що показує git diff без options?
3. Що показує git diff --staged?