Tot i que Git és ben conegut com a sistema de control de versions, l’ús de Git LFS (emmagatzematge d’arxius grans) sovint és desconegut per als usuaris de Git. Aquest how-to va dirigit a tots aquells perfils tècnics que necessitin fer ús de l’extensió Git LFS per a poder incloure arxius al servei de custòdia de codi (Gitlab) que superin la limitació de 25 MB.
Git LFS és un projecte de codi obert, és una extensió de Git i el seu objectiu és treballar de manera més eficient amb arxius grans i arxius binaris en el repositori, donat que:
Git LFS utilitza punters en lloc d’arxius reals quan els arxius (o tipus d’arxius) es troben marcats com a arxius LFS, per tant, si disposa d’arxius grans en el seu repositori i/o molts binaris, és recomanable usar Git LFS.
Per a utilitzar Git LFS dins d’un projecte cal que tots els col·laboradors instal·lin l’extensió en el lloc de treball, ja que com s’ha comentat, és una extensió de Git i, per tant, cal instal·lar-la per separat. En els següents enllaços trobareu les instruccions d’instal·lació en funció del sistema operatiu del qual es disposi:
Un cop instal·lat, en qualsevol projecte podrem indicar les extensions dels fitxers que cal incloure en el Git LFS mitjançant la següent comanda executada a l’arrel del projecte:
git lfs track "*.iso"
Aquesta instrucció s’encarregarà de generar un fitxer .gitattributes que haurem d’incloure en el nostre projecte Git:
Es recomana confirmar i enviar aquest arxiu al repositori perquè tots els desenvolupadors treballin amb la mateixa configuració de Git LFS.
Un cop instal·lat el component i indicades les extensions dels fitxers afectades, en endavant tots els fitxers amb les extensions indicades (.iso en l’exemple) es pujaran automàticament al Git LFS del servidor evitant les restriccions de mida.
Git LFS accepta expressions regulars semblants a les que podem trobar en el fitxer .gitignore, per tant el tracking pot ser tant d’un fitxer com de grups de fitxers per extensió o altres configuracions que siguin necessàries.
Quan s’extrau un arxiu Git LFS al repositori local, l’arxiu s’envia a través d’un filtre que reemplaçarà el punter per l’arxiu real. L’extensió Git LFS permet integrar fitxers d’àudio, de vídeo i gràfics en el nostre codi font sense incrementar la mida del repositori central i evitant possibles problemes de rendiment en el servidor.
Per a conèixer el seu funcionament en detall i les comandes que cal utilitzar haureu de consultar la documentació oficial a la Web de Git LFS.
git lfs prune