2017-10-18 9 views
1

J'ai un scénario pour utiliser git lfs en tant que gestionnaire de contenu.git lfs en tant que gestionnaire de contenu

Mon plan était de faire quelque chose d'un test comme ça:

          master images combined 
init lfs          (1) 
create images branch         (2) 
add 2 files           (3) 
edit 2 files           (4) 
edit 2 files           (5) 
edit 2 files           (6) 
create branch from master          (7) 
combine images to combines as 1 commit       (8) 
delete images branch         - 
merge combined to master      (10) 

après tout cela si le GC fonctionne correctement tous les fichiers modifiés d'images de branche doivent se supprimer.

Ai-je raison? Parce que le GC de lfs doit supprimer toutes les images non référencées, donc la branche a été supprimée donc les commits doivent être supprimés aussi.

P.S. l'histoire du projet montre seulement 2 commits après tout ce qui précède

MISE À JOUR

Je supprimé le projet et après la gc exécuter l'espace a été supprimé.

enter image description here

Répondre

1

Oui, si les fichiers intermédiaires deviennent par une référence non référencée git - qui est une branche (local ou distant) ou une étiquette - dans votre histoire git alors les fichiers git-lfs deviennent admissibles à la suppression.

Cependant contrairement à git qui GC automatiquement après certaines opérations, git-lfs ne le fait pas automatiquement (ou du moins il n'a pas la dernière fois que je le savais, je suis sorti de la boucle depuis un petit moment). Au lieu de cela, vous devez exécuter git lfs prune qui va supprimer les fichiers qui ne sont pas référencés. Notez cependant que, étant donné que git lfs prune est conçu pour récupérer de l'espace disque en général, il peut également supprimer les versions locales des fichiers référencés dans votre repo git, mais pas par les branches récentes (à condition d'avoir été poussé vers votre principal). remote donc n'existent pas seulement localement). Voir git lfs prune --help pour plus de détails.

HTH

+0

J'ai utilisé les 'LFS git prune' localement et dégagé le stockage sur le dossier .git qui devait faire, mais ce n'est pas le problème ici. Le problème est que '/ mnt/storage/lfs-storage' sur le serveur gitlab-ce n'a pas encore été effacé des fichiers non référencés. – gmetax

+0

OK si vous avez poussé les fichiers, alors c'est un autre problème. L'élagage du contenu sur le serveur dépend entièrement du fournisseur, c'est donc une question pour GitLab. –

+0

merci quand même pour votre aide. – gmetax

1

très probablement le gitlab ce-ce n'a pas supprimé toutes les références pour les commits, essayez à nouveau l'exemple mais ne

mer