Consider this series of unfortunate commands: ```sh % (cd $(mktemp -d); git init; (touch a; git add a; git commit -m a; touch b; git add b; git commit -m b; git bisect start; git branch next HEAD~; git checkout next ) 2>/dev/null >/dev/null; git log --oneline -1 HEAD; git branch -f main HEAD;) Initialized empty Git repository in /private/var/folders/r3/n29fz25x72x191fdv6mhhr3m0000gp/T/tmp.fGD64HAf/.git/ accc238 (HEAD -> next) a fatal: cannot force update the branch 'main' checked out at '/private/var/folders/r3/n29fz25x72x191fdv6mhhr3m0000gp/T/tmp.fGD64HAf' ``` It's true git in the repository does have a pin of sorts for the `main` branch and that `git-rebase` would be very upset if the branch's location were changed, but as an end user, the `main` branch is not checked out, the `next` branch is checked out.