Come funziona Git LFS: Panoramica di Git Large File Storage

I team di sviluppo di tutto il mondo usano Git per gestire il codice sorgente. E molti usano Git LFS – Git Large File Storage – per gestire e memorizzare file di grandi dimensioni. Qui, spieghiamo cosa fa Git LFS e quando usarlo.

Git può gestire file di grandi dimensioni?

Git non può gestire file di grandi dimensioni da solo. Ecco perché molti team di Git aggiungono Git LFS per gestire file di grandi dimensioni in Git.

Che cos’è Git LFS (Git Large File Storage)?

Git LFS è un’estensione di Git usata per gestire file grandi e file binari in un repository Git separato.

La maggior parte dei progetti oggi ha sia codice che risorse binarie. E la memorizzazione di grandi file binari nei repository Git può essere un collo di bottiglia per gli utenti Git.

Ecco perché alcuni utenti Git aggiungono Git Large File Storage (LFS).

Come funziona Git LFS?

Git LFS usa i puntatori invece dei file reali o dei grandi oggetti binari (blobs).

Così, invece di scrivere grandi file/blob in un repository Git, si scrive un file puntatore. E i file/blob stessi sono scritti su un server separato. Puoi anche usare più server in Git LFS.

Iniziare è abbastanza semplice. Si scarica l’estensione e si configurano i tipi di file.

L’utilizzo di Git LFS rende possibile la versione di file di grandi dimensioni (e la gestione dei blob) mentre si libera spazio nei repository Git. E Git LFS è spesso una soluzione per spingere file di grandi dimensioni su GitHub.

I problemi di Git oltre LFS

Git ha problemi oltre Git LFS. E la sicurezza è un grosso problema. Git nativo manca di sicurezza, e le opzioni aggiuntive per rendere sicuro Git non sono grandiose. Scopri cosa dovresti fare per la sicurezza di Git nel nostro white paper – How to Lock Down Git.

Lock Down Git

Devo usare Git LFS?

Si dovrebbe usare Git LFS se si hanno file di grandi dimensioni o file binari da memorizzare nei repository Git.

Questo perché Git è decentralizzato. Quindi, ogni sviluppatore ha la storia completa dei cambiamenti sul proprio computer. E i cambiamenti nei grandi file binari fanno sì che i repository Git crescano della dimensione di quel file ogni volta che il file viene modificato (e quel cambiamento viene commesso). Questo significa che ci vorranno secoli per ottenere i file. E se lo fai, sarà difficile fare la versione e il merge dei binari.

Quindi, ogni volta che i file crescono, il repository Git cresce. E quando gli utenti di Git hanno bisogno di recuperare e clonare un repository, questo crea problemi.

Git LFS è stato creato per risolvere questi problemi. Ma ha problemi propri…

Quando Git Large File Storage non funziona

Git LFS funziona. Ma i team ci dicono costantemente che è difficile da gestire. Così, anche se Git stesso è gratuito, può accumulare costi di produttività.

Istallare Git LFS su ogni server e stazione di lavoro (e/o repo) richiede tempo. Inoltre appesantisce gli amministratori. Una volta installato, non c’è visibilità e poco controllo su di esso. E se alcuni sviluppatori non hanno l’estensione Git LFS? Si rompe.

Ci vogliono passi in più per mantenere Git Large File Storage con i build runner, come Jenkins. Questo porta a tempo extra – e complessità extra.

Tutto questo può portare a problemi di performance.

Alternative a Git LFS

Git LFS non è l’unico modo per gestire file grandi in Git. Ci sono alternative.

Questo include altre soluzioni open source o di terze parti, come:

  • git-annex
  • git-bigfiles
  • git-fat
  • git-media
  • git-bigstore
  • git-sym

Ma, proprio come Git LFS, queste opzioni di archiviazione dei file grandi in Git possono creare problemi. C’è un modo migliore per gestire file grandi e file binari.

Il miglior controllo di versione per grandi file binari: Helix Core

I progetti di oggi sono più grandi, con più file e risorse miste che mai. Git e Git LFS da soli non possono gestirli. Ma Helix Core può farlo.

Helix Core – il software di controllo delle versioni di Perforce – è l’opzione migliore per gestire file binari di grandi dimensioni. Questo perché l’archiviazione di file di grandi dimensioni è una capacità nativa, non un add-on. Ed è a prova di proiettile.

In Helix Core, puoi archiviare i file binari insieme al tuo codice sorgente. Infatti, tutti i vostri file più grandi – file binari, codice sorgente, file artistici, file video, immagini, librerie e artefatti di costruzione – possono vivere insieme in un unico repository. Senza rallentare team grandi e distribuiti.

Vedi tu stesso perché Helix Core è lo strumento di scelta per gestire file binari di grandi dimensioni.

Gestisci file di grandi dimensioni in Helix Core

A proposito, Perforce ha anche Git

Hai ancora team che devono gestire file di grandi dimensioni in Git? Potete portarli nella vostra pipeline di compilazione con gli strumenti Perforce Git – Helix4Git e Helix TeamHub.

Helix4Git è un server Git dentro un server Perforce. Helix TeamHub è una soluzione di hosting del codice Git. Questi strumenti permettono ai team Git di sfruttare la velocità e le prestazioni di Helix Core – mentre lavorano in Git.

Quindi, puoi usare Helix4Git insieme a Helix Core per portare il tuo repository Git nella tua pipeline di build. Helix4Git permette ai tuoi sviluppatori di utilizzare ancora i loro strumenti Git nativi. Ma ottengono i loro file molto più velocemente.

Ottieni:

  • Prestazioni di compilazione CI/CD più veloci.
  • Supporto per progetti multi-repo, repository di artefatti e persino un registro di container Docker.
  • La possibilità di aggiungere gradualmente nodi.
  • Replicazione e contenuto aggiornato garantito senza ritardo, invece della copia.

Leave a Reply