2012-10-29 18 views
7

Ho uno (per ora) file di testo di grandi dimensioni di 120 MB.Come gestire file di dati di grandi dimensioni con GitHub?

È una cattiva pratica metterlo nel repository? Influisce sulla funzionalità di ricerca su GitHub?

Sembra che sia una cattiva idea perché l'intero codice sorgente è solo 900 linee.

Non pianificando l'aggiornamento del file.

Potrebbe metterlo su Dropbox o Google Docs, ma poi è separato dal repository.

Se non GitHub, c'è un modo migliore di gestire/eseguire il backup di file di dati di grandi dimensioni?

+1

L'ho visto, ma il caso d'uso è un po 'diverso e le risposte sono vecchie. –

risposta

2

Metti nel repo se:
1- si desidera tenere traccia delle modifiche
2- in realtà è una parte del progetto e si desidera persone di ricevere quando si clonano il repo

non metterlo in pronti contro termine (uso .gitignore per escluderlo) se:
1- cambia spesso, ma le modifiche non sono significativi e non si vuole mantenere la storia
2 è disponibile on-line oppure puoi renderlo disponibile online e inserire un link o qualcosa nel repository affinché le persone sappiano dove trovarlo

Dropbox è buono se non hai molte persone che lo scaricano, Amazon S3 è la soluzione migliore per ospitarla.

2

Se il file non deve essere sotto controllo di versione, sarei riluttante a posizionarlo su git hub.

aggiornamento sulla base delle discussioni ...

Da http://git-scm.com/book/en/Customizing-Git-Git-Hooks

Dopo aver eseguito un checkout git successo, le corse gancio post-checkout; è possibile utilizzarlo per impostare correttamente la propria directory di lavoro per l'ambiente di progetto . Ciò potrebbe significare lo spostamento in file binari di grandi dimensioni che non si desidera che la documentazione di controllo automatico, la generazione automatica, o lo standard lungo queste linee non siano controllati.

Quindi utilizzando questo meccanismo è possibile scaricare il file di dati memorizzati esternamente nella propria copia di lavoro.

+0

Questo è un buon punto. Ma dovrebbe anche essere collegato in qualche modo ... –

+0

È sempre possibile collegarsi a un file memorizzato esternamente che risiede su Internet da un file controllato sorgente in github. –

+1

Questo è goffo, ma se ci fosse un file git come '.gitignore' che aveva collegamenti, sarebbe perfetto. Potrebbe essere '.gitlinks'. Ogni file può avere una posizione nel repository e su un server remoto (come S3). Un comando git potrebbe scaricarli nella loro posizione nel repository. E git saprebbe di non caricarli perché non fanno veramente parte del repository. –

3

puoi metterlo su github, ma ti consiglio di inserirlo in un altro repository e collegarlo tramite i sottomoduli. Ciò assicurerà che il file non venga trasferito/regolato a meno che non lo facciate esplicitamente tramite il comando del sottomodulo.

2

pages.github.com è il posto giusto? non

github: aiutare risponde a questa domanda in modo molto chiaro (ero alla ricerca di loro anche)

https://help.github.com/articles/what-is-my-disk-quota

file multimediali di grandi dimensioni

file multimediali binari non vanno molto d'accordo con Git.Per questi file di solito è meglio usare un servizio specificamente progettato per quello che stai usando.

Per file multimediali di grandi dimensioni come video e musica, è necessario ospitare i file personalmente o utilizzare un servizio come Vimeo o Youtube.

Per i file di progettazione come PSD e modelli 3D, un servizio come Dropbox di solito funziona molto bene. Questo è ciò che i progettisti di GitHub usano per rimanere sincronizzati; Solo i beni dell'immagine finale sono impegnati nei nostri repository.

e https://help.github.com//articles/distributing-large-binaries

+2

Ora fornisce una risposta –

1

ci sono buoni modi per gestire questa situazione. Ad esempio, quando sto lavorando a un progetto che analizza i dati, specialmente dopo le fasi di pulizia e pre-elaborazione, è loco a condividere il codice ma non il set di dati (ovviamente per la dimensione del set di dati). Ecco quello che ho trovato: si

  • git lfs Large File Storage questo permette di tenere traccia e di impegnarsi e spingere i binari, file di dati, immagini, ecc per la stessa distanza e non si deve tirare tutto se si clona il repo .

  • git-annex utilizza i propri comandi in modo da eseguire il repo e i file allegati separatamente. È perfetto per la gestione di questi file su qualsiasi dispositivo remoto come un disco rigido, s3, unità google e molti altri.

Someone has made a nice comparison of git-annex vs git lfs here, e this post compares several method in short form.

Entrambi sembrano grandi, git allegato è più maturo attualmente, ma LFS Git è sviluppato da github che io uso, ed è per questo che sto usando LFS git.

Problemi correlati