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.

git gc

Compresses and removes orphaned objects, thus speeding up commands in your local repo. Nice! image

git fsck

Yes, I misread that too. git fsck shows you all orphan or dangling objects in your local repo. I cleaned up recently so mine isn’t too bad. image

git prune

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. image

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.

Tags: ,