/ Startseite / Blog /

git clean unreferenced objects

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

Quelle: Sam Watkins@stackoverflow

Posted on Jun 26, 2022