1 votes

Ajouter un fichier à un dépôt Git mais ne pas le contrôler.

J'ai un dépôt git où je définis le flux de travail (scripts + documentation) pour configurer une base de données : du téléchargement des données au formatage des données à la publication des données.

À la suite de l'étape de téléchargement, j'obtiens un ensemble de fichiers (JSON) totalisant environ ~150 Mo (que je peux compresser en un tarball d'environ ~40 Mo). Ensuite, ces fichiers passent par le pipeline pour finalement constituer une collection de base de données.

Voici ma question : je voudrais inclure le résultat de l'étape de téléchargement dans mon dépôt, mais je n'ai pas besoin que ces fichiers de données soient versionnés/contrôlés par git. En d'autres termes, je n'ai pas besoin que Git diff ces fichiers chaque fois que je les mets à jour à l'avenir - j'espère ne jamais utiliser ces fichiers, mais si je le fais, j'aurai seulement besoin de la dernière version, je ne me soucie pas de leur historique.

Est-ce possible ?

"Pourquoi voudrais-je faire ça ?" - Supposons que le(s) fichier(s) téléchargé(s) changent complètement d'un commit à l'autre, l'ancienne version resterait dans l'historique en utilisant de l'espace pour aucune raison puisque je ne me soucie que de la dernière version ; c'est pourquoi j'ai emprunté cette voie. Est-ce que cela a du sens ?

Santé.

2voto

Jose Adrian Points 1157

Vous pouvez utiliser git LFS (Large File Support) pour cela. Votre cas d'utilisation est exactement ce pour quoi il a été conçu.

0voto

James Mertz Points 390

Non. L'historique de Git n'est pas basé sur les fichiers (comme dans SVN ou Hg) - il est basé sur les commits, et chaque ID de commit est un instantané immuable de l'ensemble de l'« arborescence de travail » (c'est-à-dire tous les fichiers suivis à ce moment-là). Suivre uniquement la dernière version signifierait reconstruire le commit précédent à chaque fois qu'un nouveau est fait, et cela serait amusant pour les branching et les fusions.

Cependant, de nombreux dépôts avec de gros fichiers utilisent des addons tels que git-annex ou Git-LFS qui ne suivent pas les fichiers dans Git en premier lieu - ils ne font que faire en sorte que Git suive un pointeur vers un stockage externe. Ces addons ont généralement l'option de supprimer les objets qui ne sont pas utilisés dans les commits récents.

L'utilisateur devra toujours avoir l'addon installé pour être en mesure de récupérer les gros fichiers. (Soit les fichiers nécessaires pour l'arborescence de travail sont téléchargés depuis le serveur désigné lors du checkout, soit vous utilisez des commandes comme git annex {get,drop} pour le faire à la demande.)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X