Comment puis-je supprimer les validations qui n'ont aucun ensemble de modifications en utilisant git filter-branch?
J'ai réécrit mon historique git en utilisant:
git filter-branch --tree-filter 'rm -r -f my_folder' -f HEAD
cela a bien fonctionné mais maintenant j'ai beaucoup de commits avec des changesets vides. Je voudrais supprimer ces commits. De préférence en msysgit.
Le reconditionnement n'est pas vraiment une option car j'ai plus de 4000 commits et la moitié d'entre eux doivent être supprimés.
Ajoutez simplement le --Prune-empty
option:
git filter-branch --tree-filter 'rm -rf my_folder' --Prune-empty -f HEAD
(Et bien sûr, si vous avez d'autres références, vous voudrez peut-être tout réécrire avec -- --all
au lieu de simplement HEAD
.)
Notez que ce n'est pas compatible avec --commit-filter
; dans ce cas, Charles Bailey a votre réponse .
Je regarde juste la documentation de filter-branch
, vous devriez pouvoir faire ceci:
git filter-branch --commit-filter 'git_commit_non_empty_tree "$@"' HEAD