Your local branch has diverged from origin in ways you can't reconcile and you just want to throw your local state away:
git fetch origin
git reset --hard origin/main
This:
- Discards all local commits since you branched.
- Discards all uncommitted changes.
- Makes your branch match origin/main exactly.
Pair with git clean -fd if you also have untracked files to nuke.
⚠️ Combination git fetch && git reset --hard origin/main && git clean -fd is irreversible (well — reflog briefly). Only use when you've already decided your local state is garbage.