Appliquer.gitignore à commis des fichiers
j'ai commis des charges de fichiers que je veux maintenant ignorer. Comment puis-je dire à git d'ignorer ces fichiers de futures propagations?
EDIT: je ne veux pas les supprimer à partir du référentiel. Ce sont des fichiers créés après chaque compilation ou pour un support d'outils spécifique à l'utilisateur.
6 réponses
- Modifier
.gitignorepour trouver le fichier que vous souhaitez ignorer -
git rm --cached /path/to/file
voir aussi:
après avoir édité .gitignore pour faire correspondre les fichiers ignorés, vous pouvez faire git ls-files -ci --exclude-standard pour voir les fichiers qui sont inclus dans les listes d'exclusion; vous pouvez ensuite faire git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached pour les supprimer du dépôt (sans les supprimer du disque).
Edit : vous pouvez aussi ajouter ceci comme alias dans votre .gitconfig fichier de sorte que vous pouvez l'exécuter à tout moment vous voulez. Il suffit d'ajouter la ligne suivante dans la section [alias]:
apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
(le drapeau -r dans xargs empêche git rm de tourner sur un résultat vide et d'imprimer 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 taper git apply-gitignore dans votre repo, et il fera le travail pour vous!
pour conserver le fichier dans le repo mais ignorer les modifications futures:
git update-index --assume-unchanged <file>
et pour annuler ceci:
git update-index --no-assume-unchanged <file>
pour savoir quels fichiers ont été configurés de cette façon:
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 rapport actuel est la dernière version
- Modifier
.gitignorecomme tu veux -
git rm -r --cached . -
git add .
puis engagez-vous comme d'habitude
Vieille question, mais certains d'entre nous sont dans git-posh (powershell). C'est la solution pour cela:
git ls-files -ci --exclude-standard | foreach { git rm --cached $_ }
suivez ces étapes:
-
Ajouter un chemin d'accès à
gitignorefichier -
exécuter cette commande
git rm -r --cached foldername -
valider les modifications, comme d'habitude.