Git repack
O comando "git repack" pode ser usado para limpar o repositório. Recomenda-se usar "git repack -a -d --window=50 --depth=50 --window-memory=1024m" Significado das flags: -a serve para indicar que um único pack de objetos deve ser criado - isso é mais eficiente. -d indica que objetos inúteis (como um branch apagado) podem ser removidos. --window=50 indica que objetos a até 50 revisões de distância vão ser comparados aos atuais para economizar disco. O --depth=50 indica que o git vai guardar no máximo até 50 diffs. Finalmente, esse comando (se seu repositório for grande - 4,5gb) come *muita* memória - então vale a pena limitar o consumo de memória usando --window-memory (Note que o git sempre usa cerca de 100MB a mais do que o window memory - então se vc quer que o git use apenas 1 gb no total vc deve passar uns 850m pra essa flag).
Mais info aqui: http://www.kernel.org/pub/software/scm/git/docs/git-repack.html