The idea itself, animated. One concept, one analogy, three things to remember — then straight into the questions that use it.
8 explainers
Detached HEAD, and how work seems to vanish
HEAD normally points at a branch, and the branch points at a commit. Check out a raw SHA and HEAD points straight at the commit instead, so anything you commit there is reachable from nothing, and switching branches appears to delete it.
Gitflow, watched one branch at a time
Gitflow keeps two branches alive forever (main for what is live, develop for what is next) and adds three short-lived branch types around them: feature, release and hotfix. Every branch has one place it starts from and one or two places it must merge back into. Get those arrows wrong and fixes go missing.
Merge vs rebase, watched one commit at a time
Merge joins two histories with a new commit and keeps the fork visible forever. Rebase replays your commits onto a new base and leaves a straight line, but every replayed commit is a brand new object with a new SHA.
Reset vs revert: two ways to undo, one of them destructive
Reset moves the branch pointer backwards and leaves the commit orphaned. Revert adds a new commit that applies the opposite change. One rewrites history and needs a force push; the other only ever grows it and is safe on a shared branch.
How an autoscaler actually decides, and why it always lags
A Horizontal Pod Autoscaler runs one formula on a loop: desired = ceil(replicas × current ÷ target). Everything people find surprising about autoscaling (the lag, the overshoot, the slow scale-down) falls out of that formula and the timers around it.
Liveness vs readiness: one restarts, one just stops traffic
A readiness probe decides whether a pod gets traffic. A liveness probe decides whether it gets killed. Point them at the same slow dependency and readiness protects you while liveness takes the whole deployment down.