Bitbucket: fshini dosjen nga historia e Git

Ekziston një kufi i vështirë prej 2 GB kur pret Git në Bitbucket - nëse kjo tejkalohet, ju keni vetëm qasje të lexueshme në depo. Për të parandaluar këtë, për shembull, ju në mënyrë retroaktive hiqni dosjet ose skedarët e mëdhenj nga angazhimet tuaja. Por edhe në raste të tjera (nëse të dhënat e hyrjes kanë hyrë në histori ose nyja_modules ka rënë përsëri në master), ju duhet të manipuloni në mënyrë retrospektive historinë e Git në kundërshtim me natyrën e saj.


Bitbucket ka shkruar një artikull të hollësishëm për këtë. Për të kaluar të gjitha gjërat në një rast, së pari krijojmë një depo të re:

histori bitbucket e pastër

Pastaj e klonojmë depon në një dosje të zbrazët në makinën lokale:

6ab7686fc508ce87c52b10bb5d01ee51

Tani krijojmë dy nën-dosje me skedarë me përmbajtje të rastësishme:

6ab7686fc508ce87c52b10bb5d01ee51

Tani po shtyjmë masterin:

6ab7686fc508ce87c52b10bb5d01ee51

Tani kemi arritur pothuajse në kufirin e vështirë prej 2 GB në Bitbucket:

histori bitbucket e pastër

Ne gjithashtu mund ta kontrollojmë këtë në vend (shiko "paketën e madhësisë"):

6ab7686fc508ce87c52b10bb5d01ee51

histori bitbucket e pastër

Detyra tani është që të heqim në mënyrë retroaktive "foo" nga depoja në mënyrë që të përgjysmoni madhësinë e saj. Për ta bërë këtë, ne së pari redaktojmë HEAD aktuale dhe shkruajmë dosjen në gitignore:

6ab7686fc508ce87c52b10bb5d01ee51

Më në fund, ne përdorim BFG Repo Cleaner për të hequr dosjen (BFG kërkon një JRE aktual në sistem si një kërkesë e sistemit):

6ab7686fc508ce87c52b10bb5d01ee51

Tani ne shohim rezultatin në vend:

6ab7686fc508ce87c52b10bb5d01ee51

histori bitbucket e pastër

Sidoqoftë, madhësia e depove nuk ka ndryshuar ende në Bitbucket sepse mbledhësi i mbeturinave nuk është ekzekutuar ende nga distanca dhe bitbucket nuk ekzekuton një "git gc" me çdo shtytje:

histori bitbucket e pastër

Mbështetja gjithashtu konfirmon këtë:

histori bitbucket e pastër

Kështu që është më mirë të dërgoni një kërkesë direkt në support@bitbucket.org për të ekzekutuar manualisht "git gc" në depo. Pas një kohe të shkurtër, kjo u bë edhe nga ekipi mbështetës:

histori bitbucket e pastër

Nëse tani "freskët" tërhiqeni depon në një kompjuter tjetër, vetëm 0.9 GB do të përfundojë në disk. Nëse dikush ka versionin 1.8 GB në dispozicion në vend, një "tërheqje git" e ndjekur nga "git gc" është e mjaftueshme.

Prapa