Bitbucket: törölje a mappát a Git előzményeiből

A Git Bitbucket-en való tárolásakor 2 GB-os korlátozás szükséges - ha ezt túllépik, akkor csak olvasható hozzáféréssel rendelkezik a tárolóhoz. Ennek megakadályozása érdekében például visszamenőlegesen távolítsa el a nagy mappákat vagy fájlokat a kötelezettségvállalásokból. De más esetekben is (ha a hozzáférési adatok bekerültek az előzményekbe, vagy a node_modules ismét bekerültek a masterre), akkor visszamenőlegesen kell manipulálni a Git előzményeit, annak természetével ellentétben.


A Bitbucket részletes cikket írt erről. Ha egy esetben az egész dolgot át szeretnénk hajtani, először hozzunk létre egy új tárolót:

A bitbucket előzményei tiszta

Ezután a tárolót egy üres mappába klónozzuk a helyi számítógépen:

6ab7686fc508ce87c52b10bb5d01ee51

Most két almappát hozunk létre véletlenszerű tartalmú fájlokkal:

6ab7686fc508ce87c52b10bb5d01ee51

Most felszólítjuk a mestert:

6ab7686fc508ce87c52b10bb5d01ee51

Most már majdnem elértük a 2 GB-os kemény korlátot a Bitbucket-en:

A bitbucket előzményei tiszta

Ezt helyben is ellenőrizhetjük (lásd "méret-csomag"):

6ab7686fc508ce87c52b10bb5d01ee51

A bitbucket előzményei tiszta

A feladat most a "foo" visszamenőleges eltávolítása az adattárból annak méretének felére csökkentése érdekében. Ehhez először szerkesztsük az aktuális HEAD-et, és írjuk be a mappát a gitignore-ba:

6ab7686fc508ce87c52b10bb5d01ee51

Végül a BFG Repo Cleaner használatával távolítjuk el a mappát (a BFG rendszerkövetelményként egy aktuális JRE-t igényel a rendszeren):

6ab7686fc508ce87c52b10bb5d01ee51

Az eredményt most helyben látjuk:

6ab7686fc508ce87c52b10bb5d01ee51

A bitbucket előzményei tiszta

A lerakat mérete azonban a Bitbucket-en még nem változott, mivel a szemetesgyűjtőt még nem hajtották végre távolról, és a bitbucket minden egyes lenyomással nem hajt végre "git gc" -et:

A bitbucket előzményei tiszta

A támogatás ezt is megerősíti:

A bitbucket előzményei tiszta

Ezért a legjobb, ha kérést küldünk közvetlenül a support@bitbucket.org e- mail címre a "git gc" kézi futtatásához a lerakatban. Rövid idő elteltével ezt a támogató csapat is megtette:

A bitbucket előzményei tiszta

Ha most "frissen" húzza a lerakatot egy másik számítógépre, akkor csak 0,9 GB fog végül a lemezen maradni. Ha valakinek helyben van az 1,8 GB-os verziója, akkor elegendő a "git pull", majd a "git gc".

Vissza