Wenn man in git einen Commit löscht, indem man
git reset --hard HEAD~1
git push --force
ausführt, dann werden die erzeugten Objekte (unter .git/objects) nicht wirklich gelöscht, sondern nur die Referenzen darauf entfernt. Um auch die nicht mehr benötigten Objekte zu löschen, muss man (auch auf dem remote) folgendes ausführen:
git -c gc.reflogExpire=0 -c gc.reflogExpireUnreachable=0 -c gc.rerereresolved=0 -c gc.rerereunresolved=0 -c gc.pruneExpire=now gc