Bitbucket: supprimer le dossier de l'historique Git

Lors de l'hébergement de Git sur Bitbucket , il existe une limite stricte de 2 Go - si cette limite est dépassée, vous n'avez qu'un accès en lecture seule au référentiel. Pour éviter cela, vous pouvez, par exemple, supprimer rétroactivement de gros dossiers ou fichiers de vos commits. Mais dans d'autres cas également (si les données d'accès ont trouvé leur chemin dans l'historique ou si node_modules est passé à master à nouveau), vous devez manipuler rétroactivement l'historique de Git, contrairement à sa nature.


Bitbucket a écrit un article détaillé à ce sujet. Afin de tout parcourir sur un cas, nous créons d'abord un nouveau référentiel:

histoire de bitbucket propre

Ensuite, nous clonons le référentiel dans un dossier vide sur la machine locale:

6ab7686fc508ce87c52b10bb5d01ee51

Maintenant, nous créons deux sous-dossiers avec des fichiers de contenu aléatoire:

6ab7686fc508ce87c52b10bb5d01ee51

Nous poussons maintenant le maître:

6ab7686fc508ce87c52b10bb5d01ee51

Maintenant, nous avons presque atteint la limite stricte de 2 Go sur Bitbucket:

histoire de bitbucket propre

Nous pouvons également vérifier cela localement (voir "size-pack"):

6ab7686fc508ce87c52b10bb5d01ee51

histoire de bitbucket propre

La tâche est maintenant de supprimer rétroactivement "foo" du référentiel pour réduire sa taille de moitié. Pour ce faire, nous éditons d'abord le HEAD actuel et écrivons le dossier dans gitignore:

6ab7686fc508ce87c52b10bb5d01ee51

Enfin, nous supprimons le dossier à l'aide du BFG Repo Cleaner (BFG nécessite un JRE actuel sur le système comme exigence système):

6ab7686fc508ce87c52b10bb5d01ee51

Nous pouvons maintenant voir le résultat localement:

6ab7686fc508ce87c52b10bb5d01ee51

histoire de bitbucket propre

Mais sur Bitbucket, la taille du référentiel n'a pas encore changé, car le garbage collector n'a pas encore été exécuté à distance et bitbucket n'exécute pas un "git gc" à chaque push:

histoire de bitbucket propre

Ceci est également confirmé par le support:

histoire de bitbucket propre

Il est donc préférable d' envoyer une requête directement à support@bitbucket.org pour exécuter manuellement "git gc" dans le référentiel. Après un court laps de temps, cela a également été fait par l'équipe d'assistance:

histoire de bitbucket propre

Si vous déplacez «fraîchement» le référentiel vers un autre ordinateur, seulement 0,9 Go se retrouvera sur le disque. Si quelqu'un a la version 1,8 Go disponible localement, un "git pull" suivi de "git gc" est suffisant.

Retour