filter-branch

La commande filter-branch a été créée pour permettre la réécriture de l’historique des branches d’un projet en passant des filtres (scripts évalués à la volée).

Elle permet par exemple la suppression de fichiers ou répertoires sensibles ou volumineux qui nuiraient au projet.

Imaginez par exemple qu’à un moment du projet, un membre de l’équipe ait décidé de stocker des fichiers de plusieurs giga-octets dans un répertoire (les maquettes Photoshop par exemple). Le poids de ces fichiers a alors une incidence au clone initial (sauf shallow clone) et peut même avoir des conséquences plus contraignantes (GitHub, entre autres plateformes d’hébérgement Git, limite la taille des dépôts à 2Go pour les comptes standards). Il vous faudra alors purger dans l’historique complet du projet les fichiers et répertoires problématiques.

Note importante : la commande filter-branch est dépréciée depuis plusieurs versions de Git pour des raisons de performance et de sécurité. Git ne propose cependant pas d’alternative native à la solution et encourage d’utiliser une solution tierce nommé filter-repo.