Mais virez donc ce .DS_Store!


Cet article est une traduction a posteriori d'un billet d'abord publié en anglais.

MacOS créé des fichiers .DS_Store automatiquement lorsque vous passez par le Finder pour gérer un dossier.

Le système d’exploitation va y stocker des informations, comme par exemple la liste des fichiers dans le dossier, au format binaire.

On ne peut pas lire un fichier .DS_Store comme ça, le format n’est pas destiné à l’humain, mais c’est facile à décoder en revanche, et ça devient dangereux lorsque c’est déployé sur un serveur web:

Mais comment ça peut arriver en production un tel fichier ?

Si le projet (et/ou la machine d’un des devs) n’a pas .gitignore. qui liste ce type de fichier, ça va se retrouver dans le dépôt git. J’ai vu plein de dépôts publics, y compris de profils techniques assez avancés, qui oublient ce détail.

The best approach, to me, is to configure it globally on your machine. This way, even if you forget to ignore those files in your particular project, it will be skipped anyway.

Je recommande d’ajouter une règle dans le .gitignore global de la machine. Commencez par afficher cette config globale :

git config --global core.excludesfile  

Et vérifiez ensuite que .DS_Store y figure.

Si le fichier n’existe pas encore, créez un fichier .gitignore à la racine de votre dossier utilisateur et reliez-le à la config git via cette commande :

git config --global core.excludesfile ~/.gitignore

Vous avez des templates de gitignore globaux sur Internet pour votre inspiration si vous voulez compléter la liste.

Cela ne va pas retirer les .DS_Store existants en revanche donc vous pouvez lancer ceci pour faire le ménage :

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

Protégez-vous.

Cette page est aussi disponible dans d'autres langues :