.gitignore tous les fichiers .DS_Store dans chaque dossier et sous-dossier

J’ai ajouté le fichier .DS_Store au fichier .gitignore, mais il semble qu’il n’ignore que .DS_Store dans le répertoire racine, pas dans tous les dossiers et sous-dossiers.

Comment puis-je réparer ça?

Related of ".gitignore tous les fichiers .DS_Store dans chaque dossier et sous-dossier"

Je pense que le problème que vous rencontrez est que, lors de certaines validations antérieures, vous avez ajouté par erreur des fichiers .DS_Store au référentiel. Bien sûr, une fois qu’un fichier est suivi dans votre référentiel, il continuera à être suivi même s’il correspond à une entrée dans un fichier .gitignore applicable.

Vous devez supprimer manuellement les fichiers .DS_Store qui ont été ajoutés à votre référentiel. Vous pouvez utiliser git rm --cached .DS_Store . Une fois supprimé, git devrait l’ignorer. Vous ne devriez avoir besoin que de la ligne suivante dans votre fichier racine .gitignore: .DS_Store . N’oubliez pas la période!

git rm --cached .DS_Store supprime uniquement le git rm --cached .DS_Store du répertoire en cours. Vous pouvez utiliser find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch pour supprimer tous les .DS_Stores du référentiel.

Astuce: puisque vous ne voudrez probablement jamais inclure les fichiers .DS_Store, créez une règle globale. Tout d’abord, créez un fichier .gitignore global quelque part, par exemple echo .DS_Store >> ~/.gitignore_global . Dites maintenant à git de l’utiliser pour tous les repositorys: git config --global core.excludesfile ~/.gitignore_global .

Cette page m’a aidé à répondre à votre question: https://help.github.com/articles/ignoring-files

Ajouter **/.DS_Store dans .gitignore pour le sous-répertoire


Si .DS_Store déjà .DS_Store :

 find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch 

Pour les ignorer dans tous les référentiels: (parfois il s’appelle ._.DS_Store )

 echo ".DS_Store" >> ~/.gitignore_global echo "._.DS_Store" >> ~/.gitignore_global echo "**/.DS_Store" >> ~/.gitignore_global echo "**/._.DS_Store" >> ~/.gitignore_global git config --global core.excludesfile ~/.gitignore_global 

Votre fichier .gitignore devrait ressembler à ceci:

 # Ignore Mac DS_Store files .DS_Store 

Tant que vous n’incluez pas de barre oblique, elle est comparée au nom de fichier dans tous les répertoires. (d’ ici )

Si .DS_Store n’a jamais été ajouté à votre repository git, ajoutez-le simplement à votre fichier .gitignore.

Si vous n’en avez pas, créez un fichier appelé

 .gitignore 

Dans votre répertoire racine de votre application et écrivez simplement

 **/.DS_Store 

Dedans Cela ne permettra jamais au fichier .DS_Store de se faufiler dans votre git.

Mais si c’est déjà là, écrivez dans votre terminal:

 find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch 

puis validez et appuyez sur les modifications pour supprimer le .DS_Store de votre repo distant:

 git commit -m "Remove .DS_Store from everywhere" git push origin master 

Et maintenant, ajoutez .DS_Store à votre fichier .gitignore, puis à nouveau validez et poussez avec les 2 derniers morceaux de code (git commit …, git push …)

Étape 1, supprimez tous les fichiers *.DS_store . On peut courir

 git rm -f *.DS_Store 

mais sachez que rm -f peut être un peu dangereux si vous avez une faute de frappe! Deuxième étape: append

 *.DS_Store .DS_Store 

à .gitignore. Cela a fonctionné pour moi!

Vous pouvez également append l’indicateur –cached à la réponse de auco pour conserver les fichiers .DS_store locaux, comme Edward Newell l’a mentionné dans sa réponse originale. La commande modifiée ressemble à ceci: find . -name .DS_Store -print0 | xargs -0 git rm --cached --ignore-unmatch find . -name .DS_Store -print0 | xargs -0 git rm --cached --ignore-unmatch find . -name .DS_Store -print0 | xargs -0 git rm --cached --ignore-unmatch ..cheers et merci!

Ajoutez *.DS_Store à votre fichier .gitignore. Cela fonctionne parfaitement pour moi

Etape: 1) Supprimez les fichiers existants en utilisant cette commande

trouver . -name .DS_Store -print0 | xargs -0 git rm -f –ignore-unmatch

Etape: 2) Ajoutez .DS_Store dans votre fichier .gitignore

Etape: 3) Validez vos modifications dans .gitignore git add .gitignore git commit -m “.DS_Store”