Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Practice the powerful, dangerous parts of Git on a throwaway repo: use interactive rebase to squash/reorder/reword a messy branch into a clean one; cherry-pick a hotfix commit onto a release branch; deliberately 'lose' a commit (hard reset) and recover it via the reflog; and safely update an already-pushed branch with --force-with-lease (never plain --force). Tag the result as an annotated semver release. Document why you'd never do the history rewrite on shared main.
Interactive rebase used to squash/reorder/reword into a clean linear history; understands hashes change.
A 'lost' commit (after a hard reset) is recovered via the reflog; cherry-pick ports a single commit correctly.
Uses --force-with-lease (not --force) and can explain the golden rule: never rewrite shared/published history.
An annotated semver tag is created and pushed; the rewrite-vs-shared-history trade-off is documented.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# Curate history and recover from mistakes ## Goal Practice the powerful, dangerous parts of Git on a throwaway repo: use interactive rebase to squash/reorder/reword a messy branch into a clean one; cherry-pick a hotfix commit onto a release branch; deliberately 'lose' a commit (hard reset) and recover it via the reflog; and safely update an already-pushed branch with --force-with-lease (never plain --force). Tag the result as an annotated semver release. Document why you'd never do the history rewrite on shared main. ## Acceptance criteria - [ ] History rewriting: Interactive rebase used to squash/reorder/reword into a clean linear history; understands hashes change. - [ ] Recovery: A 'lost' commit (after a hard reset) is recovered via the reflog; cherry-pick ports a single commit correctly. - [ ] Safe force-push: Uses --force-with-lease (not --force) and can explain the golden rule: never rewrite shared/published history. - [ ] Release tagging: An annotated semver tag is created and pushed; the rewrite-vs-shared-history trade-off is documented. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.