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.
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.
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
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