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 elle est dépassée, vous n'avez qu'un accès en lecture seule au référentiel. Pour éviter cela, par exemple, vous pouvez supprimer rétrospectivement de gros dossiers ou fichiers de vos commits. Mais aussi dans d'autres cas (si les données d'accès sont entrées dans l'historique ou que node_modules est retourné au master), vous devez manipuler rétrospectivement 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