git gc and prune explained better