Si vous utilisez git sur la plate-forme Mac, vous avez probablement rencontré des fichiers DS_Store dans un référentiel git. Ceux-ci peuvent être ennuyeux et encombrer un dépôt git, et vous pouvez même rencontrer des conflits inutiles en raison des fichiers.DS_Store conservés dans les dépôts git, où vous pouvez voir des messages d’erreur comme”Les fichiers.DS_Store et.DS_Store ont eu un conflit d’arborescence”. Étant donné que les fichiers.DS_Store ne sont pas nécessaires à la grande majorité des référentiels git et peuvent généralement causer des problèmes, il est raisonnable de vouloir supprimer les fichiers.DS_Store des référentiels git.
Tout d’abord, si vous vous demandez ce qu’est un fichier DS_Store, il s’agit essentiellement d’un fichier contenant des métadonnées spécifiques à un dossier sur un Mac. Ainsi, un fichier.DS_Store comprend tout, des métadonnées sur le type d’affichage, la taille du fichier/dossier, les informations sur les vignettes, la disposition des dossiers et toutes les personnalisations au niveau du Finder à un dossier particulier sur le Mac. Étant donné que les fichiers.DS_Store sont préfixés par un. dans le nom de fichier, ils sont invisibles pour le Finder (ce qui en fait des fichiers cachés), mais s’afficheront dans la ligne de commande, et avec des outils de ligne de commande ou des gestionnaires de référentiel comme git qui inclura par défaut chaque fichier, y compris les fichiers cachés, dans un répertoire.
Bien que les fichiers.DS_Store soient évidemment utiles pour le Finder, ils ne sont pas utiles pour avoir dans un référentiel git. Voyons comment vous pouvez supprimer tous les fichiers DS_Store d’un référentiel git et comment les empêcher d’être également stockés dans les futurs référentiels git.
Comment supprimer les fichiers.DS_Store existants du référentiel Git
Ouvrez le terminal et accédez au répertoire git repo dont vous souhaitez supprimer les fichiers.DS_Store Entrez la chaîne de commande suivante :
find.-nom.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 en fait supprimer tous les DS_Store fichiers à partir d’un Mac en utilisant une autre variante de la commande de recherche, mais sachez qu’en procédant ainsi, vous perdrez toutes les personnalisations de la fenêtre et du dossier du Finder, il n’est donc pas particulièrement recommandé d’emprunter cette voie.
Comment ignorer les fichiers.DS_Store dans git
Allons maintenant un peu plus loin et empêchons git de maintenir et de valider les fichiers DS_Store en premier lieu, et à la place de les ignorer complètement. Cela se fait en modifiant (ou en créant) le fichier.gitignore dans le répertoire du dépôt actif :
echo.DS_Store >>.gitignore
Maintenant, vous voudrez ajouter le.gitignore dans votre référentiel et validez la modification.
git add.gitignore
git commit-m’Ignoring.DS_Store Files’
–
Pour ce que ça vaut, ce n’est pas seulement git qui peut rencontrer des problèmes avec la création ou l’encombrement des fichiers.DS_Store, ou qui peut gagner à les ignorer, vous pouvez également exclure les fichiers DS_Store des archives zip créées sur un Mac, ce qui peut aider pour réduire l’encombrement (et empêcher les métadonnées spécifiques à la machine) d’être conservées dans un fichier zip. Et vous pouvez constater que les fichiers.DS_Store sont désagréables avec 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 si nécessaire.