web-dev-qa-db-fra.com

Quel est l'avantage de git lfs?

Github a un limite sur Push gros fichier. Donc, si vous voulez pousser un gros fichier vers votre référentiel, vous devez utiliser Git LFS .

Je sais que c'est une mauvaise idée d'ajouter un fichier binaire dans git repo. Mais si j'utilise gitlab sur mon serveur et qu'il n'y a pas de limite de taille de fichier dans un référentiel, et je me fiche que la taille du référentiel soit super grande sur mon serveur. Dans cet état, quel est l'avantage de git lfs? git clone ou git checkout sera plus rapide?

38
Sanster

Une spécificité de Git (et d'autres systèmes distribués) par rapport aux systèmes centralisés est que chaque référentiel contient toute l'histoire du projet. Supposons que vous créez un fichier de 100 Mo, modifiez-le 100 fois d'une manière qui ne se comprime pas bien. Vous vous retrouverez avec un référentiel de 10 Go. Cela signifie que chaque clone téléchargera 10 Go de données et consommera 10 Go d'espace disque sur chaque machine sur laquelle vous faites un clone. Ce qui est encore plus frustrant: vous devrez toujours télécharger ces 10 Go de données même si vous git rm les gros fichiers.

Placer des fichiers volumineux dans un système séparé comme git-lfs vous permet de stocker uniquement des pointeurs vers chaque version du fichier dans le référentiel, donc chaque clone ne téléchargera qu'un petit morceau de données pour chaque révision. La caisse ne télécharge que la version que vous utilisez, soit 100 Mo dans l'exemple ci-dessus. Par conséquent, vous utiliseriez de l'espace disque sur le serveur, mais économisez beaucoup de bande passante et d'espace disque sur le client.

De plus, l'algorithme utilisé par git gc (en interne, git repack) ne fonctionne pas toujours bien avec les gros fichiers. Les versions récentes de Git ont progressé dans ce domaine et cela devrait fonctionner assez bien, mais l'utilisation d'un grand référentiel contenant de gros fichiers peut éventuellement vous causer des ennuis (comme ne pas en avoir assez RAM pour reconditionner votre dépôt).

68
Matthieu Moy