Problèmes liés à la poussée de fichiers volumineux via GIT

Actuellement, lorsque j'essaie de pousser pour un repo Git, j'obtiens l'erreur suivante.

remote: error: GH001: Large files detected.
remote: error: Trace: 7bbfe5c1099cfe679aa3cd1eee13e10a
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File e3384023be667de7529538b11c12ec68.201307290946.sql.gz is 125.37 MB; this exceeds GitHub's file size limit of 100 MB

J'ai traversé et fait en sorte que ce fichier n'existe pas dans le répertoire, et j'ai fait git add-u, nous avons essayé d'élaguer la branche mais cela ne fonctionne pas car il ne peut pas trouver le fichier à supprimer.

Toute aide serait très appréciée.

25
demandé sur Deepend 2013-11-08 15:57:51

3 réponses

Il est possible que vous poussiez plusieurs commits, l'un d'eux incluant un fichier volumineux, et un autre plus récent supprimant Ce fichier.

Dans tous les cas, vous pouvez essayer, comme expliqué dans "fixant l'erreur" cela dépasse la limite de taille de fichier de github de 100 Mo " ", une branche de filtre (si vous connaissez le nom/chemin du fichier volumineux que vous ne pouvez pas voir)

git filter-branch --index-filter 'git rm --cached --ignore-unmatch e3384023be667de7529538b11c12ec68.201307290946.sql.gz' <sha1>..HEAD

Ou, si vous ne savez pas, mais vous voulez vous débarrasser de tout gros fichier (disons > 90 MO), vous pouvez utiliser le BFG repo cleaner

bfg --strip-blobs-bigger-than 90M  my-repo.git

Cela permettra de suivre pour vous ce fichier volumineux insaisissable dans votre historique de dépôt et de le supprimer.
Notez que vous devrez faire un git push --force Après cela, car l'historique des validations les plus récentes aura été modifié.
Si d'autres ont déjà cloné votre repo auparavant, un peu de communication est nécessaire pour les avertir.

27
répondu VonC 2017-02-10 23:51:40

Dans mon cas, je l'ai corrigé avec ce lien:

Aide GitHub / travailler avec des fichiers volumineux

Remarquez où il est dit giant_file (Je n'ai pas remarqué cela)

$ git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch giant_file' \
  --prune-empty --tag-name-filter cat -- --all

$ git commit --amend -CHEAD

$ git push
23
répondu xyz 2017-11-14 08:23:14

Si vous avez plusieurs fichiers volumineux, vous devez exécuter une autre commande:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch largfile1'
git filter-branch --index-filter 'git rm --cached --ignore-unmatch largefile2'
Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f

, Vous devez exécuter

git update-ref -d refs/original/refs/heads/master

Ensuite, vous pouvez exécuter la commande git filter-branch

J'espère que cela vous aidera

1
répondu Kemin Zhou 2016-10-07 21:50:15