Skip to main content

À propos des fichiers volumineux sur GitHub

GitHub Enterprise Server limite la taille des fichiers que vous pouvez suivre dans les référentiels Git ordinaires. Découvrez comment suivre ou supprimer les fichiers qui dépassent la limite.

Platform navigation

À propos des limites de taille sur GitHub Enterprise Server

Si GitHub Enterprise Server tente de fournir un stockage abondant pour tous les dépôts Git, il existe des limites strictes concernant les tailles de fichiers et des recommandations sur les tailles de dépôt.

Limites de taille de fichiers

GitHub Enterprise Server limite la taille des fichiers autorisés dans les dépôts. Si vous tentez d’ajouter ou de mettre à jour un fichier d’une taille supérieure à 50 Mio, vous recevrez un avertissement de Git. Les modifications seront toujours envoyées (push) à votre dépôt, mais vous pouvez envisager de supprimer la validation pour réduire l’impact sur les performances. Pour plus d’informations, consultez « Suppression de fichiers de l’historique d’un dépôt ».

Note

Si vous ajoutez un fichier à un dépôt via un navigateur, la taille du fichier ne peut pas être supérieure à 25 Mio. Pour plus d’informations, consultez « Ajout d’un fichier à un référentiel ».

Par défaut, GitHub Enterprise Server bloque les fichiers de blocs dont la taille est supérieure à 100 Mio. Toutefois, un administrateur de site peut configurer une limite différente pour votre instance GitHub Enterprise Server. Pour plus d’informations, consultez « Application de stratégies de gestion des dépôts dans votre entreprise ».

Pour suivre les fichiers au-delà de cette limite, vous devez utiliser Stockage Fichiers volumineux Git (Git LFS). Pour plus d’informations, consultez « À propos du stockage de fichiers Git volumineux ».

Si vous devez distribuer des fichiers volumineux à l’intérieur de votre référentiel, vous pouvez créer des mises en production sur votre instance GitHub Enterprise Server au lieu de suivre les fichiers. Pour plus d’informations, consultez « Distribution de fichiers binaires volumineux ».

Git n’est pas conçu pour gérer des fichiers SQL volumineux. Pour partager des bases de données volumineuses avec d’autres développeurs, nous vous recommandons d’utiliser un service de partage de fichiers.

Recommandations sur les tailles de dépôt

Nous conseillons de limiter la taille des dépôts petits, idéalement à moins de 1 Go, une taille inférieure à 5 Go étant vivement recommandée. Les dépôts de plus petite taille sont plus rapides à cloner et plus faciles à utiliser et à gérer.

Vous pouvez éviter que votre dépôt ait un impact sur votre infrastructure, en gérant efficacement la taille et l’intégrité globale de votre dépôt. Vous trouverez des conseils et un outil pour l’analyse de dépôts dans le dépôt github/git-sizer.

Suppression de fichiers de l’historique d’un dépôt

Warning

Ces procédures suppriment définitivement les fichiers du référentiel sur votre ordinateur et de votre instance GitHub Enterprise Server. Si le fichier est important, effectuez une copie de sauvegarde locale dans un répertoire en dehors du dépôt.

Suppression d’un fichier ajouté dans la validation non envoyée (push) la plus récente

Si le fichier a été ajouté avec votre validation la plus récente, et que vous n’avez pas effectué d’envoi (push) à votre instance GitHub Enterprise Server, vous pouvez supprimer le fichier et modifier la validation :

  1. Ouvrez TerminalTerminalGit Bash.

  2. Remplacez le répertoire de travail actuel par votre dépôt local.

  3. Pour supprimer le fichier, entrez git rm --cached :

    $ git rm --cached GIANT_FILE
    # Stage our giant file for removal, but leave it on disk
    
  4. Validez cette modification à l’aide de --amend -CHEAD :

    $ git commit --amend -CHEAD
    # Amend the previous commit with your change
    # Simply making a new commit won't work, as you need
    # to remove the file from the unpushed history as well
    
  5. Envoyez (push) vos validations à votre instance GitHub Enterprise Server :

    $ git push
    # Push our rewritten, smaller commit
    

Suppression d’un fichier ajouté dans une validation antérieure

Si vous avez ajouté un fichier dans une validation antérieure, vous devez le supprimer de l’historique du dépôt. Pour supprimer les fichiers de l’historique du référentiel, nous vous recommandons la commande git filter-repo. Pour plus d’informations, consultez « Suppression de données sensibles dans un dépôt ».

Si vous ne souhaitez pas installer d’outil supplémentaire, vous pouvez également utiliser un rebase interactif pour supprimer les commits problématiques. Pour ce faire :

  • Vous devez savoir quel(s) commit(s) a(ont) ajouté ou modifié le fichier en question.
  • Le(s) commit(s) doit(vent) faire partie d’une seule branche.
  • La branche à laquelle appartiennent les commits ne doit pas avoir fait l’objet de fusions depuis l’application du ou des commit(s).

Pour plus d’informations sur les rebases interactifs, consultez « Utilisation du rebasage Git en ligne de commande ». Si vous n’êtes pas sûr(e) de remplir les conditions nécessaires pour effectuer une correction avec un rebase interactif, vous devez utiliser git filter-repo.

Distribution de fichiers binaires volumineux

Si vous devez distribuer des fichiers volumineux à l’intérieur de votre référentiel, vous pouvez créer des mises en production sur votre instance GitHub Enterprise Server. Les mises en production vous permettent d’empaqueter des logiciels, des notes de publication et des liens vers des fichiers binaires à l’usage d’autres personnes. Pour plus d’informations, consultez À propos des versions.