Comment puis-je annuler toutes les validations git qui n'ont pas été poussées et puis forcer git à ne rien valider dans le répertoire data /?
J'essaie de forcer l'écrasement de toutes les modifications apportées à un projet stocké sur github à partir de mon projet c9.io. J'ai accidentellement ajouté des fichiers de données mongodb. J'ai essayé d'ajouter le répertoire data/à .gitignore. J'ai tiré de github pour obtenir le .gitignore mis à jour, cependant quand j'essaie de git Push, ces fichiers tenaces dans data/sont toujours organisés pour validation. J'ai également essayé git reset, git rebase, git clean et this où j'ai changé dmpfile.sql en pi/data/node-login.1.
S'il vous plaît, aidez-moi, je suis là depuis des heures et je suis vraiment frustré
Counting objects: 15, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (13/13), 150.22 KiB | 92 KiB/s, done.
Total 13 (delta 6), reused 0 (delta 0)
remote: warning: File pi/data/local.0 is 64.00 MB; this is larger than GitHub's recommended maximum file size of 50 MB
remote: warning: File pi/data/node-login.0 is 64.00 MB; this is larger than GitHub's recommended maximum file size of 50 MB
remote: error: GH001: Large files detected.
remote: error: Trace: e6ade98208c08b634ed28aefea36dfbb
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File pi/data/node-login.1 is 128.00 MB; this exceeds GitHub's file size limit of 100 MB
To [email protected]:bobbyg603/goddard.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to Push some refs to '[email protected]:bobbyg603/goddard.git'
.gitignore:
lib-cov
*.seed
*.log
*.csv
*.dat
*.out
*.pid
*.gz
data/
pids
logs
results
npm-debug.log
node_modules
.project
.settings
Merci, Bobby
Grâce à Chris, j'ai pu résoudre ce problème en exécutant ce qui suit:
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch pi/data/node-login.0'
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch pi/data/node-login.1'
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch pi/data/local.0'
git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch FOLDERNAME" -- --all
remplacez FOLDERNAME par le fichier ou le dossier que vous souhaitez supprimer du référentiel git donné.
Cela a fonctionné pour moi:
git rm --cached name_of_a_giant_file
git rm --cached name_of_another_giant_file
git commit --amend -CHEAD
git Push
Source: Aide Github: Travailler avec des fichiers volumineux
J'ai utilisé BFG Repo Cleaner simple et rapide, fonctionne comme un charme
git filter-branch --tree-filter 'rm -rf path/whaever' HEAD
C'est un peu plus simple et c'est un moyen de simplement le supprimer et le réécrire de l'historique. Voilà le résultat
Rewrite 5ac3045254d33fc5bb2b9fb05dccbdbb986b1885 (61/62) (24 seconds passed, remaining 0 predicted)
Ref 'refs/heads/features_X' was rewritten
Maintenant, je peux pousser