Als je git op het Mac-platform gebruikt, ben je waarschijnlijk DS_Store-bestanden tegengekomen in een git-repository. Deze kunnen vervelend zijn en een git-repo onoverzichtelijk maken, en je kunt zelfs onnodige conflicten tegenkomen omdat.DS_Store-bestanden worden onderhouden in git-repo’s, waar je mogelijk foutmeldingen ziet zoals”De bestanden.DS_Store en.DS_Store hadden een boomconflict”. Omdat.DS_Store-bestanden niet nodig zijn door de overgrote meerderheid van git-repositories en over het algemeen gewoon problemen kunnen veroorzaken, is het redelijk om.DS_Store-bestanden uit git-repositories te willen verwijderen.
Ten eerste, als je je afvraagt wat een DS_Store-bestand in de eerste plaats is: het is eigenlijk een bestand dat mapspecifieke metadata bevat op een Mac. Een.DS_Store-bestand bevat dus alles, van metadata over weergavetype, bestands-/mapgrootte, miniatuurinformatie, mapindeling en eventuele aanpassingen op Finder-niveau tot een bepaalde map op de Mac. Aangezien.DS_Store-bestanden worden voorafgegaan door een. in de bestandsnaam zijn ze onzichtbaar voor de Finder (waardoor ze in feite verborgen bestanden worden), maar ze worden weergegeven op de opdrachtregel en met opdrachtregeltools of repository-beheerders zoals git die standaard elk afzonderlijk bestand, inclusief verborgen bestanden, opnemen in een map.
Hoewel.DS_Store-bestanden natuurlijk handig zijn voor de Finder, zijn ze niet handig om in een git-repository te hebben. Laten we eens kijken hoe je alle DS_Store-bestanden uit een git-repository kunt verwijderen en hoe je kunt voorkomen dat ze ook in toekomstige git-repositories worden opgeslagen.
Bestaande.DS_Store-bestanden verwijderen uit Git Repository
Open de Terminal en navigeer naar de git repo-directory waarvan u de.DS_Store-bestanden wilt wissen Voer de volgende opdrachtreeks in:
find.-name.DS_Store-print0 | xargs-0 git rm-f–ignore-unmatch
Dat zal.DS_Store-bestanden vinden en verwijderen.
Als u nog verder wilt gaan, kunt u eigenlijk alle DS_Store verwijderen bestanden van een Mac met een andere variant van de opdracht find, maar houd er rekening mee dat u alle aanpassingen aan Finder-vensters en-mappen kwijtraakt, dus het wordt niet echt aanbevolen om die route te volgen.
Hoe.DS_Store-bestanden in git te negeren
Laten we nu een stap verder gaan en voorkomen dat git DS_Store-bestanden onderhoudt en commit, en ze in plaats daarvan volledig negeren. Dit wordt gedaan door het.gitignore-bestand in de actieve repo-directory aan te passen (of aan te maken):
echo.DS_Store >>.gitignore
Nu wilt u de.gitignore toevoegen bestand naar uw repository en commit de wijziging.
git add.gitignore
git commit-m’Ignoring.DS_Store Files’
–
Voor wat het waard is, het is niet alleen git dat problemen kan tegenkomen met het maken van.DS_Store-bestanden of rommel, of die baat kan hebben bij het negeren ervan, je kunt ook DS_Store-bestanden uitsluiten van zip-archieven die op een Mac zijn gemaakt, wat kan helpen om rommel te verminderen (en te voorkomen dat machinespecifieke metadata) in een zipbestand worden bewaard. En het kan zijn dat.DS_Store-bestanden onaangenaam zijn voor netwerkomgevingen, maar een standaardopdracht kan voorkomen dat DS_Store-bestanden worden gemaakt voor netwerkvolumes, indien nodig.