Klaida spustelėjus „github repo“

Kai spusteliu mano įsipareigojimus, atsiranda ši klaida:

 remote: warning: File var/log/system.log is 57.82 MB; this is larger than recommended maximum file size of 50 MB remote: error: GH001: Large files detected. remote: error: Trace: 96d01231dffac3fbc3ba1eb2e9f01a93 remote: error: See http://git.io/iEPt8g for more information. remote: error: File var/report/752246136671 is 100.86 MB; this exceeds github file size limit of 100 MB 

Bandžiau toliau išvardytas komandas:

 git push -u origin master 

Negaliu rasti jų git failuose, kad galėtumėte įvykdyti, kai įvedžiau „git“ būseną.

Ar galėtumėte man pasakyti, kaip panaikinti repo pakeitimus be šių klaidų? Manau, kad šie failai yra github indekse. Aš taip pat bandžiau git rm - cached var / log / system.log. bet jokių rezultatų.

banging galvą prieš sieną!

UPDATE 1 Čia rasite „Gistov“, remiantis dviem ekspertų atsakymais:

UPDATE 2 Jei norite ištrinti abu failus, raskite žemiau esančią „Git Log“ informaciją:

ATSAKYMAS KAS DARBAS

Raskite galutinio atsakymo, kuris išsprendė mano problemą, esmę.

„Git“ kreditai ekspertams „VonC“, „Holger“ Tiesiog ir visi kiti ekspertai, teikę savo indėlį ir, žinoma, „stackoverflow“.

3
06 марта '14 в 17:47 2014-03-06 17:47 Haijerome yra nustatytas kovo 06 '14, 17:47 2014-03-06 17:47
@ 4 atsakymai

git rm arba „ git rm --cached neužtenka, kad pašalintumėte šį failą iš istorijos, saugomos jūsų repo.

Jums reikia:

  • naudokite BFG Repo Cleaner, kaip nurodyta pirmiau.

     bfg --strip-blobs-bigger-than 1M my-repo.git 
  • naudokite git gc --agrressive --prune=now (po BFG), kaip aprašyta „ Sumažinti git repository“

  • git push -f norėdami nustatyti naują istoriją su nuotoliniu repo.
6
10 марта '14 в 15:08 2014-03-10 15:08 atsakymą pateikė VonC kovo 10 d. 14 val. 15:08 2014-03-10 15:08

Pranešime pateikiama informacija apie du failus. var/log/system.log generuoja įspėjimą, tačiau jis bus spustelėtas. var/report/752246136671 per didelis ir taip užkerta kelią spaudimui. Taigi, turite ištrinti bent paskutinį failą.

Prieš „Github“ galite spustelėti, turėsite ištrinti failą iš visų norimų paspaudimų. Nepakanka tik ištrinti failą vėlesniame įsipareigojime po to, kai jį įterpėte anksčiau.

Pagal straipsnį, susijusį su pranešimu, galite atlikti vieną iš dviejų rekomenduojamų operacijų:

Jei pridėjote failą prie paskutinio įsipareigojimo, galite jį pakeisti, kad ištrintumėte failą:

 git rm --cached var/report/752246136671 # Stage our giant file for removal, but leave it on disk git commit --amend -CHEAD # Amend the previous commit with your change # Simply making a new commit won't work, as you need # to remove the file from the unpushed history as well git push # Push our rewritten, smaller commit 

Arba galite naudoti BFG filtruoti savo saugyklą ir pašalinti failą iš visų įsipareigojimų. Tai būtina, jei pridėjote failą, skirtą istoriniam istorijos įkėlimui (priešingai nei naujausias įsipareigojimas), turite išvalyti istoriją. „Github“ neleis jums spustelėti didelio failo bet kokiame įvykyje, net jei jis bus ištrintas vėliau. Taip yra dėl to, kad šiuo atveju failas vis dar bus istorijos dalis, taigi pripučia repo.

BFG galite įdiegti iš https://github.com/rtyley/bfg-repo-cleaner/releases/latest .

Vykdydami šią komandą, galite pašalinti bet kokių failų, didesnių nei 100 MB, nuorodas:

 cd /path/to/your/git/repo java -jar bfg.jar --strip-blobs-bigger-than 100M # Git history will be cleaned - files in your latest commit will *not* be touched 

Atkreipkite dėmesį, kad tai pakeis jūsų saugyklos istoriją, dėl to galimas priverstinis paspaudimas. Taigi, jums gali tekti suderinti su kitais kūrėjais.

Be to, jei vis tiek reikia failo, turite atlikti atsarginę kopiją, nes negalite atkurti jos iš git.

1
06 марта '14 в 18:11 2014-03-06 18:11 Atsakymą pateikė Holger Tiesiog kovo 06 d. 14, 18:11 2014-03-06 18:11

Problema ta, kad nors ištrinote atitinkamus failus naudodami naujus įsipareigojimus, yra daugiausiai atitinkamų failų, atitinkančių tuos pačius failus jūsų repo, ir 2 iš šių objektų dydis išmeta jums įspėjimą ir klaidą. Norėdami dar kartą paspausti, taip pat turite ištrinti tą patį.

Nors bfg-repo turėtų dirbti daugeliui žmonių, kad išspręstų situaciją, reikia, kad java būtų įdiegta ir sukonfigūruota sistemoje, ir tai ne visada yra prieinama.

Turite 2 var/log/system.log ir var/report/752246136671 kurie viršija ribą, todėl aš norėčiau pasiūlyti naudoti filter-branch kad pašalintumėte juos:

 git filter-branch --index-filter 'git rm --cached --ignore-unmatch var/log/system.log var/report/752246136671' --tag-name-filter cat -- --all 

Gali tekti vėliau priversti pakeitimus atlikti (naudodami git push -f origin ).

Apskritai, gera praktika ignoruoti *.log , *.info ir kitus žurnalo failus iš git saugyklos naudojant *.log įrašą .gitignore faile. Taip pat galite ignoruoti aplanką var/reports .

Jei yra failų, kurie jau buvo prijungti prie repo ir spustelėję anksčiau, gali tekti naudoti git rm --cached "*.log" kad juos pašalintumėte ir git rm --cached "*.log" šiuos pakeitimus, kad jie nebūtų išsiplėtę amžinai.

PS: Man atrodo, kad magento / joomla diegimas man visiškai ignoruoja jūsų .gitignore var aplanką, jums nereikia objektų iš var/cache arba var/session ir tt, kurie bus stebimi repo.

1
10 марта '14 в 22:35 2014-03-10 22:35 atsakymas pateikiamas mu kovo 10 d. 14 val. 22:35 2014-03-10 22:35

Akivaizdu, kad bandote spustelėti labai didelį failą, kaip nurodyta klaidoje. Tai taip pat yra žurnalo failas, todėl manau, kad jis neturėtų būti saugykloje.

Jei taip, tai atlikite, kad pašalintumėte klaidą:

 $ git rm var/log/system.log $ git commit -m "Delete system.log file" $ git push -u origin master 
0
06 марта '14 в 17:50 2014-03-06 17:50 atsakymą pateikė Agis kovo 14 d. 14 d. 17:50 2014-03-06 17:50

Kiti klausimai apie „gitub“ žymes arba „ Užduoti klausimą“