.gitignore tout le.DS stocke des fichiers dans chaque dossier et sous-dossier

j'ai ajouté .DS_Store à l' .dossier gitignore, mais il semble qu'il ne fait qu'ignorer .DS_Store dans le répertoire racine, pas dans chaque dossier et sous-dossier.

comment arranger ça?

372
demandé sur Alex Zavatone 2013-08-23 06:01:06

8 réponses

je pense que le problème que vous avez est que dans une commit plus tôt, vous avez accidentellement ajouté .DS_Store file vers le dépôt. Bien sûr, une fois qu'un fichier est suivi dans votre référentiel, il continuera à être suivi même si elle correspond à une entrée dans un lieu .dossier gitignore.

Vous devez supprimer manuellement le .DS_Store fichiers qui ont été ajoutés à votre dépôt. Vous pouvez utiliser git rm --cached .DS_Store . Une fois enlevé, git devrait l'ignorer. Vous devriez seulement besoin de l' ligne suivante dans votre racine .dossier gitignore: .DS_Store . N'oubliez pas la période!

git rm --cached .DS_Store supprime seulement .DS_Store de l'annuaire courant. Vous pouvez utiliser find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch pour supprimer tout .DS_Stores du dépôt.

Felt tip: puisque vous ne voulez probablement jamais inclure .Les fichiers DS_Store, faire une règle. Tout d'abord, faire un mondial .gitignore fichier quelque part, par exemple echo .DS_Store >> ~/.gitignore_global . Maintenant indiquer à git de l'utiliser pour tous les référentiels: git config --global core.excludesfile ~/.gitignore_global .

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

473
répondu Edward Newell 2016-04-12 16:06:51

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


si .DS_Store déjà commis:

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

pour les ignorer dans tous les dépôts: (parfois appelé ._.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
222
répondu ronald8192 2016-12-02 08:04:22

votre .gitignore fichier 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 du fichier dans tous les répertoires. (de ici )

68
répondu Yarin 2017-05-23 11:54:59

si .DS_Store n'a jamais été ajouté à votre dépôt git, il suffit de l'ajouter à votre .dossier gitignore.

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

.gitignore

dans votre répertoire racine de votre application et simplement écrire

**/.DS_Store

dedans. Cela ne permettra jamais le .DS_Store fichier à se faufiler dans votre dépôt git.

mais, s'il est déjà là, écrivez dans votre terminal:

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

puis valider et soumettre les modifications pour supprimer le .DS_Store à partir de votre télécommande repo:

git commit -m "Remove .DS_Store from everywhere"

git push origin master

et maintenant ajouter.DS_Store pour votre .gitignore, puis encore commit et push avec les 2 derniers morceaux de code (git commit... git push...)

48
répondu drjorgepolanco 2016-08-11 20:22:09

Étape 1, supprimer tous les fichiers *.DS_store . On peut exécuter

git rm -f *.DS_Store

mais sachez que rm -f peut être un peu dangereux si vous avez une typo! Deuxième étape: ajouter

*.DS_Store
.DS_Store

to .gitignore. Cela a fonctionné pour moi!

20
répondu travelingbones 2016-05-27 16:06:48

vous pouvez également ajouter le drapeau --cached à la réponse de auco pour maintenir local .DS_store files, 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 ..salut et merci!

10
répondu Andrew Wilhelm 2014-10-04 05:48:10

ajouter *.DS_Store à votre .dossier gitignore. Cela me convient parfaitement

9
répondu Jacob 2015-02-04 07:47:37

Étape: 1) Supprimer les fichiers existants en utilisant cette commande

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

Étape: 2) Ajouter .DS_Store dans votre .gitignore file

Étape :3) valider vos modifications .gitignore git add .gitignore git commit -m "a été supprimé .DS_Store "

5
répondu vishnu 2017-07-28 09:09:40