Effacer le cache local de git

92

J'ai un projet Webstorm que j'allais valider, mais avant d'appuyer sur le bouton de validation dans l'interface graphique Git Windows, je me suis souvenu que je ne voulais pas valider .ideale contenu de mon dossier.

J'ai donc utilisé le site Web généré automatiquement .gitignorespour certains IDE et l'ai ajouté à mon .gitignorefichier.

Tous les .ideafichiers explicitement ignorés sont toujours affichés pour être validés, même si j'ai supprimé et ajouté de nouveau les fichiers en question.

J'ai également commis le fichier gitignore sans aucun autre fichier et recollé mon contenu, mais il n'ignore toujours pas les fichiers .idea.

Comment dire à Git d'actualiser ou de vider son cache?
J'ai essayé / cd ing dans le répertoire en question et en tapant

git clean -n

mais aucun fichier n'apparaît.

jozenbasin
la source

Réponses:

120

Tous les fichiers .idea qui sont explicitement ignorés s'affichent toujours pour être validés

vous devez les supprimer de la zone de transit

git rm --cached .idea

maintenant vous devez valider ces changements et ils seront ignorés à partir de maintenant.
Une fois que git commencera à suivre les modifications, il ne "cessera" pas de les suivre même si elles ont été ajoutées au .gitignorefichier ultérieurement.

Vous devez les supprimer explicitement, puis valider votre suppression manuellement afin de les ignorer complètement.


entrez la description de l'image ici

entrez la description de l'image ici

CodeWizard
la source
3
Je ne commets jamais les fichiers que j'essaie d'ignorer, cependant .. Cela me ditfatal: pathspec '.idea' did not match any files
jozenbasin
Lorsque vous tapez git status, les voyez-vous? WebStorm les a peut-être ajoutés pour vous si vous avez coché la case pour ajouter automatiquement des fichiers
CodeWizard
2
Je n'en ai aucune idée mais il semble que la commande que vous m'avez donnée a fonctionné, même si elle a renvoyé une erreur fatale ... Les fichiers ne s'affichent plus pour être validés.
jozenbasin
vous pourriez envisager d'ajouter -rpour la suppression récursive
Vishrant
79

Lorsque vous pensez que votre git est foiré, vous pouvez utiliser cette commande pour tout faire à jour.

git rm -r --cached .
git add .
git commit -am 'git cache cleared'
git push

Aussi pour revenir au dernier commit, utilisez ceci:

git reset HEAD^ --hard
Kamal Kumar
la source
6
N'utilisez pas git push si vous ne souhaitez pas transmettre les modifications à la télécommande. Cependant, si vous l'avez fait, accédez à l'onglet de contrôle de version en bas d'Android Studio, faites un clic droit sur le commit précédent et choisissez "Réinitialiser la branche actuelle ici"
Swapnil
la partie de réinitialisation était au mieux déroutante. mais j'ai fait jusqu'à «git push», et c'était bien.
Seun S. Lawal
6

si vous faites des changements sur git ignore, vous devez également vider votre cache git

> git rm -r --cached . 
> git add . 
> git commit -m 'git cache cleared'
> git push

si vous souhaitez supprimer un dossier ou un fichier particulier,

git rm  --cached filepath/foldername
Akshay Kumar
la source
3
git rm --cached *.FileExtension

Cela doit ignorer tous les fichiers de cette extension

Allan Ferraz
la source
3

après cette modification dans le fichier git-ignore, exécutez cette commande, cette commande supprimera tout le cache de fichiers, pas les fichiers ou les modifications

git rm -r --cached.

après l'exécution de cette commande, validez les fichiers

pour supprimer un seul fichier ou dossier du cache, utilisez cette commande

git rm --chemin du fichier / nomdossier en cache

Akshay
la source
2

Pour supprimer le répertoire .idea / mis en cache. par exemplegit rm -r --cached .idea

Max Droid
la source