Как удалить файлы DS_Store из репозитория Git
Если вы используете git на платформе Mac, вы, вероятно, сталкивались с файлами DS_Store в репозитории git. Это может раздражать и загромождать репозиторий git, и вы даже можете столкнуться с ненужными конфликтами из-за того, что файлы .DS_Store хранятся в репозиториях git, где вы можете увидеть сообщения об ошибках, такие как «Файлы .DS_Store и .DS_Store имели конфликт дерева». Поскольку файлы .DS_Store не нужны подавляющему большинству репозиториев git и обычно могут вызывать проблемы, разумно удалить файлы .DS_Store из репозиториев git.
Во-первых, если вам интересно, что такое файл DS_Store, в основном это файл, содержащий метаданные для конкретной папки на Mac. Таким образом, файл .DS_Store включает в себя все, от метаданных о типе представления, размере файла/папки, информации об эскизах, макете папки и любых настройках уровня Finder до конкретной папки на Mac. Поскольку файлы .DS_Store имеют префикс . в имени файла они невидимы для Finder (фактически делая их скрытыми файлами), но будут отображаться в командной строке, а также с инструментами командной строки или менеджерами репозиториев, такими как git, которые по умолчанию включают каждый отдельный файл, включая скрытые файлы, в каталог.
Хотя файлы .DS_Store, очевидно, полезны для Finder, они бесполезны для хранения в репозитории git. Давайте рассмотрим, как можно удалить все файлы DS_Store из репозитория git и как предотвратить их сохранение в будущих репозиториях git.
Как удалить существующие файлы .DS_Store из репозитория Git
- Откройте терминал и перейдите в каталог git repo, который вы хотите очистить от файлов .DS_Store.
- Введите следующую командную строку:
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Это найдет файлы .DS_Store и удалит их.
Если вы хотите пойти еще дальше, вы можете удалить все файлы DS_Store с Mac, используя другой вариант команды find, но имейте в виду, что при этом вы потеряете все настройки окон и папок Finder, поэтому особенно не рекомендуется пойти по этому пути.
Как игнорировать файлы .DS_Store в git
Теперь давайте сделаем еще один шаг и запретим git поддерживать и фиксировать файлы DS_Store в первую очередь, а вместо этого полностью их проигнорируем. Это делается путем изменения (или создания) файла .gitignore в активном каталоге репо:
echo .DS_Store >> .gitignore
Теперь вам нужно добавить файл .gitignore в свой репозиторий и зафиксировать изменение.
git add .gitignore
git commit -m 'Ignoring .DS_Store Files'
–
Что бы это ни стоило, это не только git, который может столкнуться с проблемами с созданием файла .DS_Store или беспорядком, или может извлечь выгоду из их игнорирования, вы также можете исключить файлы DS_Store из zip-архивов, созданных на Mac, что может помочь уменьшить беспорядок (и предотвратить хранение метаданных, специфичных для машины) в zip-файле. И вы можете обнаружить, что файлы .DS_Store неприятны для сетевых сред, но команда по умолчанию может предотвратить создание файла DS_Store для сетевых томов, если это необходимо.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)