Модуль 7 · Урок 28
Safe recovery, credentials і secrets
Recovery-команда правильна лише для конкретного state і scope. Unstage, discard uncommitted work, undo shared commit та move unpublished branch pointer — різні операції з різним ризиком. Secret incident починається з revoke/rotate, а не з косметичного видалення файла.
Decision table перед дією
| State/goal | Inspect | Типове рішення |
|---|---|---|
| Прибрати path зі staging | status, staged diff | restore --staged PATH |
| Відкинути unstaged edits | diff -- PATH, backup | restore PATH лише усвідомлено |
| Скасувати shared commit | show, dependencies | revert COMMIT |
| Знайти втрачений local tip | reflog | Створити recovery branch на знайдений commit |
Reflog локальний і expire/cleanup-bound; це evidence для recovery, не remote backup. Reset/rewrite shared history вимагає явної координації й не є базовим repair.
Remote authentication без секретів у коді
GitHub підтримує HTTPS credential flow і SSH. Пароль account для Git operations не використовується як старий password-based flow; credential manager, SSH key із passphrase або scoped token зберігаються у відповідному secure store. Не вставляйте token в remote URL, shell history, README, screenshot, issue чи support log.
Secret incident: invalidate, contain, remove, prevent
.gitignore, delete latest file або private repository не відкликають credential і не стирають копії/history.
Лабораторна й acceptance
Для кожного recovery scenario заповніть state, inspect evidence, chosen action, irreversible risk і verification. Для synthetic incident створіть runbook без самого secret. Acceptance: жодного real credential, destructive automation або твердження, що history rewrite автоматично прибирає всі external copies.
Офіційні джерела
Закріпіть матеріал уроку
Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.