2015-10-25 20 views
15

Ho alcuni file csv che sono più grandi del limite di dimensione del file di github di 100,00 MB. Ho cercato di utilizzare l'estensione di archiviazione di file Git Large.Git lfs - "questo supera il limite di dimensione del file di GitHub di 100,00 MB"

https://git-lfs.github.com/

Da LFS - "Large file versioning- Version large files—even those as large as a couple GB in size—with Git."

ho applicato il seguente sulle cartelle di interesse:

git lfs track "*.csv" 

Tuttavia, quando spingo:

remote: error: File Time-Delay-ftn/Raw-count-data-minor-roads1.csv is 445.93 MB; this exceeds GitHub's file size limit of 100.00 MB 
remote: error: File Time-Delay-ftn/Raw-count-data-major-roads.csv is 295.42 MB; this exceeds GitHub's file size limit of 100.00 MB 

Quando ho guarda la cartella in questione:

-rw-r----- 1 user staff 42B 23 Oct 12:34 .gitattributes 
-rw-r--r-- 1 user staff 1.3K 19 Oct 14:32 DfT_raw_major_manipulation.py 
-rw-r--r-- 1 user staff 1.2K 16 Oct 15:08 DfT_raw_minor_manipulation.py 
drwxr-xr-x 21 user staff 714B 22 Oct 11:35 Driving/ 
[email protected] 1 user staff 295M 19 Oct 14:47 Raw-count-data-major-roads1.csv* 
[email protected] 1 user staff 446M 16 Oct 14:52 Raw-count-data-minor-roads1.csv* 

quando Vim il file .gitattributes si può vedere la configurazione LFS:

*.csv filter=lfs diff=lfs merge=lfs -text 

Che cosa sto facendo di sbagliato?

UPDATE

Quando interrogo

git lfs ls-files 

ottengo nulla restituito. Ciò indica che nonostante il filtro .csv sia stato applicato correttamente al file .gitattributes, i file csv non vengono prelevati da lfs

+0

"Non ti sarà consentito inviare file superiori a 100 MB." - [GitHub.com in * Lavorare con file di grandi dimensioni *] (https://help.github.com/articles/working-with-large-files /) – Gumbo

+3

Non è possibile comprimerli o qualcosa del genere per ridurre le dimensioni? – Henry

+2

@Gumbo Quel documento dice anche "considera l'introduzione di Git Large File Storage (Git LFS)". Questo sembra essere quello che viene chiesto. Seguendo questo link i documenti dicono "È la soluzione ideale per spingere i file su GitHub che sono più grandi di 100 MB" – natb1

risposta

13

La semplice aggiunta di configurazione git-lfs a un repository esistente non sarà retroattivo convertire i file di grandi dimensioni a supporto LFS. Questi file di grandi dimensioni rimarranno nella tua cronologia e GitHub rifiuterà le tue richieste.

È necessario riscrivere la cronologia per introdurre git-lfs ai commit esistenti. Raccomando lo strumento per la pulizia dei refili BFG, che è stato recentemente aggiunto a added LFS support.

Si dovrebbe essere in grado di convertire l'utilizzo storica dei file CSV da:

$ java -jar ~/bfg-1.12.5.jar --convert-to-git-lfs '*.csv' --no-blob-protection 
+0

grazie! infatti. Tuttavia, non ho molta fortuna con bfg. Ho fatto installare install BFG. Ho controllato il percorso del file ma sto ricevendo errore: impossibile accedere a jarfile /usr/local/cellar/bfg-1.12.5.jar – LearningSlowly

+1

@LearningSlowly - Non ho familiarità con brew. Penserei che avresti solo bisogno di scaricare il barattolo da GitHub ed eseguirlo secondo le istruzioni. –

+0

Ho un ulteriore problema - ma questo risolve definitivamente il problema che avevo qui! Molte grazie – LearningSlowly

-1

Sembra che tu non abbia inizializzato git-lfs.

Fonte Provate a digitare
git lfs init 

: Installing Git LFS

+0

Bello. Io non ho avuto. Tuttavia, l'errore persiste – LearningSlowly

+0

Provare a effettuare un nuovo commit e premere nuovamente – hombit

+0

Grazie. Ancora in difficoltà. Quando eseguo git lfs ls-files ritorna vuoto – LearningSlowly

4

mi ha colpito lo stesso problema di ieri e screpolata esso. Non ero in grado di spingere, e sembrava che nessuno dei miei file più grandi fosse in lfs.

Probabilmente c'è un modo migliore, ma questo ha funzionato per me. Ho un grande repo con 2,5 gigabyte di dati.

Ho impostato un nuovo repository quindi l'installazione di lfs in esso. git lfs init

Poi ho configurato il mio vari tipi di file git lfs track "*.pdb" git lfs track "*.dll" Ho poi commmited miei cambiamenti e spinsi.

Ho quindi aggiunto i miei file di grandi dimensioni.Ho usato sourcetree, e nelle note di output sarebbe stato indicato per i file di grandi dimensioni corrispondenti ai miei caratteri jolly che stava invece eseguendo un file txt minuscolo. (scusa, non li ho registrati, ma dovrebbe essere ovvio).

Poi ho spinto, e ho visto "saltare i file", e la spinta è riuscita rapidamente.

quindi il problema sta probabilmente cercando di aggiungere file a lfs che sono già nella cronologia. Puoi solo aggiungere nuovi file. Probabilmente puoi pulire il repository di questi file.

Nota: ho trovato che alcuni file che corrispondevano ai miei caratteri jolly non venivano rilevati da lfs. Sono stati raccolti file simili in diverse cartelle, ma non tutti. Ho provato ad aggiungere esplicitamente questi file usando il percorso completo. git lfs track "Windows/bin/myBigFile.dll" ma questo non ha aiutato neanche. Alla fine ho rinunciato a causa di vincoli di tempo.

Si dovrebbe anche controllare il limite di archiviazione con gitHub. Ho acquistato il 50gig extra per coprire le mie esigenze.

La clonazione del repository ora scarica i file separatamente e tutto sta finalmente funzionando bene.

+0

Grazie! Una soluzione praticabile. Tuttavia, penso che l'uso dello strumento BFG sia la migliore strada da seguire. Sono finito nella stessa barca però, ho dovuto acquistare 50 GB;) – LearningSlowly

0

ho avuto questo errore:

remote: error: File client/static/static-version/20171221_221446.psd is 223.61 MB; this exceeds GitHub's file size limit of 100.00 MB

E perché ho già rimosso il file da questa cartella, crea .gitignore di file e ha cercato di commettere paio di volte, non sapevo che era memorizzata nella cache, ho potuto non spingere a github. Nel mio caso ha aiutato:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch client/static/static-version/20171221_221446.psd'

Dove ho messo percorso completo del file (da errore di cui sopra) per rimuoverlo dalla cache. Dopodiché, il push è stato effettuato con successo

Problemi correlati