Application de .gitignore aux fichiers validés

J’ai commis des charges de fichiers que je veux maintenant ignorer. Comment puis-je dire à git d’ignorer maintenant ces fichiers des futures commits?

EDIT: Je veux aussi les supprimer du référentiel. Ce sont des fichiers créés après la génération ou pour le support des outils spécifiques à l’utilisateur.

  1. Modifiez .gitignore pour correspondre au fichier que vous voulez ignorer
  2. git rm --cached /path/to/file

Voir également:

  • Comment gérer un fichier sans le supprimer du disque?
  • Supprimer un fichier d’un référentiel Git sans le supprimer du système de fichiers local
  • Ignorer un répertoire d’un repository Git après l’ajout

Après avoir édité .gitignore pour correspondre aux fichiers ignorés, vous pouvez faire git ls-files -ci --exclude-standard pour voir les fichiers inclus dans les listes d’exclusion. vous pouvez alors faire git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached pour les supprimer du référentiel (sans les supprimer du disque).

Edit : Vous pouvez également append ceci en tant qu’alias dans votre fichier .gitconfig afin de pouvoir l’exécuter à tout moment. Ajoutez simplement la ligne suivante sous la section [alias]:

 apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached 

(L’indicateur -r dans xargs empêche git rm de s’exécuter sur un résultat vide et imprime son message d’utilisation, mais ne peut être supporté que par GNU findutils. D’autres versions de xargs peuvent ou non avoir une option similaire.)

Maintenant, vous pouvez simplement taper git apply-gitignore dans votre repo, et ça va faire le travail pour vous!

laisser le fichier dans le repository mais ignorer les modifications futures:

 git update-index --assume-unchanged  

et pour annuler ceci:

 git update-index --no-assume-unchanged  

pour savoir quels fichiers ont été définis de cette manière:

 git ls-files -v|grep '^h' 

crédit pour la réponse originale à http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/

Assurez-vous que votre repo actuel est la dernière version

  1. Modifier .gitignore comme vous le souhaitez
  2. git rm -r --cached .
  3. git add .

puis commettre comme d’habitude

Ancienne question, mais certains d’entre nous sont en git-posh (powershell). C’est la solution pour cela:

 git ls-files -ci --exclude-standard | foreach { git rm --cached $_ } 

Suivez ces étapes:

  1. Ajouter un chemin au fichier gitignore

  2. Exécuter cette commande

     git rm -r --cached foldername 
  3. commettre des modifications comme d’habitude.