Skip to content

Instantly share code, notes, and snippets.

@ratibus
Created October 25, 2012 13:29
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ratibus/3952552 to your computer and use it in GitHub Desktop.
Save ratibus/3952552 to your computer and use it in GitHub Desktop.
Nettoyage de dépôt Git
# On clone le dépot tout frais pour avoir un fichier pack complet pour l'analyse (c'est + simple)
git clone --mirror ...
# On se déplace dans le répertoire du clone
# On fait l'état des lieux initial
git count-objects -v > count-objects-init.txt
# On exporte le verify-pack (ça prend du temps ça)
git verify-pack -v objects/pack/pack*.idx > verify-pack.txt
# On exporte les rev-list
git rev-list --objects --all > rev-list.txt
# On cherche les fichiers à supprimer TODO
# On ré-écrit l'histoire :)
git filter-branch --tag-name-filter cat --index-filter 'git rm --cached --ignore-unmatch files' --prune-empty -f -- --all
# On reprend l'état des lieux
git count-objects -v > count-objects-post-filter.txt
# On nettoie les vieilles références
rm -rf refs/original/
rm -rf logs
git gc
# On reprend l'état des lieux (le size doit toujours être élevé mais pas le size-pack)
git count-objects -v > count-objects-post-gc.txt
# On purge les résidus (ça va faire baisser effectivement la taille, on peut aussi faire un clone)
git prune --expire=now
@JohnnyEvo
Copy link

Nice :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment