Comment supprimer les fichiers DS_Store du dépôt Git
Si vous utilisez git sur la plateforme Mac, vous avez probablement rencontré des fichiers DS_Store dans un dépôt git. Ils peuvent être gênants et encombrer un dépôt git, et vous pouvez même rencontrer des conflits inutiles en raison des fichiers .DS_Store maintenus dans les dépôts git, où vous pouvez voir des messages d'erreur tels que "Les fichiers .DS_Store et .DS_Store ont un conflit d'arbre". Comme les fichiers .DS_Store ne sont pas nécessaires à la grande majorité des dépôts git et qu'ils peuvent généralement causer des problèmes, il est raisonnable de vouloir supprimer les fichiers .DS_Store des dépôts git.
Tout d'abord, si vous vous demandez ce qu'est un fichier DS_Store, il s'agit d'un fichier qui contient des métadonnées spécifiques à un dossier sur Mac. Ainsi, un fichier .DS_Store comprend toutes les métadonnées relatives au type d'affichage, à la taille des fichiers/dossiers, aux informations sur les vignettes, à la disposition des dossiers et à toutes les personnalisations au niveau du Finder pour un dossier particulier sur le Mac. Comme les fichiers .DS_Store sont préfixés par un . dans le nom de fichier, ils sont invisibles dans le Finder (ce qui en fait des fichiers cachés), mais ils apparaîtront dans la ligne de commande et avec les outils de ligne de commande ou les gestionnaires de référentiel comme git qui incluront par défaut tous les fichiers, y compris les fichiers cachés, dans un répertoire.
Alors que les fichiers .DS_Store sont évidemment utiles pour le Finder, ils ne sont pas utiles dans un dépôt git. Voyons comment supprimer tous les fichiers DS_Store d'un dépôt git, et comment éviter qu'ils ne soient stockés dans de futurs dépôts git.
Comment supprimer les fichiers .DS_Store existants d'un dépôt Git
- Ouvrez le Terminal, et naviguez jusqu'au répertoire git repo que vous souhaitez débarrasser des fichiers .DS_Store.
- Entrez la chaîne de commande suivante :
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Cela trouvera les fichiers .DS_Store et les supprimera.
Si vous souhaitez aller encore plus loin, vous pouvez supprimer tous les fichiers DS_Store d'un Mac à l'aide d'une autre variante de la commande find, mais sachez qu'en procédant ainsi, vous perdrez toutes les personnalisations des fenêtres et des dossiers du Finder, et qu'il n'est donc pas particulièrement recommandé d'opter pour cette solution.
Comment ignorer les fichiers .DS_Store dans git
Allons maintenant plus loin, et empêchons git de maintenir et de commiter les fichiers DS_Store en premier lieu, et ignorons-les complètement. Cela se fait en modifiant (ou en créant) le fichier .gitignore dans le répertoire actif du repo :
echo .DS_Store >> .gitignore
Vous devez maintenant ajouter le fichier .gitignore à votre dépôt et valider la modification.
git add .gitignore
git commit -m 'Ignoring .DS_Store Files'
-
Vous pouvez également exclure les fichiers DS_Store des archives zip créées sur un Mac, ce qui permet de réduire l'encombrement (et d'éviter que des métadonnées spécifiques à une machine ne soient conservées dans un fichier zip). Il se peut également que les fichiers .DS_Store soient gênants dans les environnements réseau, mais une commande par défaut peut empêcher la création de fichiers DS_Store pour les volumes réseau, le cas échéant.