Bitbucket: ștergeți folderul din istoricul Git

Când găzduiești Git pe Bitbucket, există o limită dificilă de 2 GB - dacă aceasta este depășită, ai acces numai în citire la depozit. Pentru a preveni acest lucru, de exemplu, eliminarea retroactivă a dosarelor mari sau a fișierelor din angajamentele dvs. Dar și în alte cazuri (dacă datele de acces au intrat în istoric sau nodul_modulele au trecut din nou pe master), trebuie să manipulați retrospectiv istoria Git, contrar naturii sale.


Bitbucket a scris un articol detaliat în acest sens. Pentru a parcurge totul într-un singur caz, mai întâi creăm un nou depozit:

istoric de bitbucket curat

Apoi clonăm depozitul într-un folder gol pe mașina locală:

6ab7686fc508ce87c52b10bb5d01ee51

Acum creăm două subfoldere cu fișiere cu conținut aleatoriu:

6ab7686fc508ce87c52b10bb5d01ee51

Ne apasă acum asupra maestrului:

6ab7686fc508ce87c52b10bb5d01ee51

Acum am ajuns aproape la limita grea de 2 GB pe Bitbucket:

istoric de bitbucket curat

Putem verifica și acest lucru local (a se vedea „size-pack”):

6ab7686fc508ce87c52b10bb5d01ee51

istoric de bitbucket curat

Sarcina de acum este de a elimina retroactiv „foo” din depozit pentru a reduce la jumătate dimensiunea acestuia. Pentru a face acest lucru, mai întâi edităm HEAD-ul curent și scriem folderul în gitignore:

6ab7686fc508ce87c52b10bb5d01ee51

În cele din urmă, eliminăm folderul folosind BFG Repo Cleaner (BFG necesită un JRE curent pe sistem ca cerință a sistemului):

6ab7686fc508ce87c52b10bb5d01ee51

Acum vedem rezultatul local:

6ab7686fc508ce87c52b10bb5d01ee51

istoric de bitbucket curat

Cu toate acestea, dimensiunea depozitului nu s-a schimbat încă pe Bitbucket, deoarece colectorul de gunoi nu a fost încă executat de la distanță, iar bitbucket nu execută un "git gc" cu fiecare apăsare:

istoric de bitbucket curat

Asistența confirmă și acest lucru:

istoric de bitbucket curat

Așadar, cel mai bine este să trimiteți o solicitare direct la support@bitbucket.org pentru a rula manual „git gc” în depozit. După puțin timp, acest lucru a fost realizat și de echipa de suport:

istoric de bitbucket curat

Dacă acum "proaspăt" trageți depozitul pe un alt computer, doar 0,9 GB vor ajunge pe disc. Dacă cineva are încă la nivel local versiunea de 1.8 GB disponibilă, este suficient un „git pull” urmat de „git gc”.

Înapoi