git fetch downloads new objects but doesn't remove tracking refs for branches deleted on the remote. After a few months you have dozens of stale origin/feature-old references cluttering completions.
Prune them:
git fetch --prune
# Or set default behavior
git config --global fetch.prune true
After pruning, list local branches whose tracked remote is gone:
git branch -vv | grep ": gone]"
Pipe into delete:
git branch -vv | grep ": gone]" | awk '{print $1}' | xargs git branch -D
Run monthly. The repo stays light.