Sometimes ya gotta force push or rebase and leave some commits behind. On a large repo with many commits and remotes, your git commands could actually slow down with too many objects floating around. Consider running these commands to help keep things in tip top shape.
If you don't plan on doing anything with the objects you saw using fsck, run
git prune to clear them out. If you'd like to see what would be cleaned out without actually deleting them, run
git prune -n for a dry-run.
In theory, cleanup happens somewhat regularly when running some of git's main commands. I haven't noticed, or is it just good at its job. In any case, I hope this helped!
I learned about these commands from the amazing Git Internals pdf. Every dev should read it.