Как игнорировать .DS_Store во всех каталогах?

Правило .DS_Store без начального / охватывает это имя на любой глубине под .gitignore. Если Git всё ещё показывает изменение, проверьте отслеживание файла.

1. Добавьте правило с нужной областью

Добавьте строку в корневой .gitignore для общей настройки проекта. /.DS_Store охватит только корневую копию. Для личной настройки нескольких репозиториев используйте глобальный файл.

.DS_Store

Почему файл игнорируется глобальными правилами Git?

2. Различайте игнорируемые и отслеживаемые файлы

Для неотслеживаемых примеров проверьте правило каждого пути:

git check-ignore -v -- .DS_Store assets/.DS_Store

Затем проверьте, есть ли именно эти пути в индексе. check-ignore обычно не выводит отслеживаемые файлы; совпадающее правило не прекращает их отслеживание.

git ls-files -- .DS_Store assets/.DS_Store

3. Перестаньте отслеживать конкретную копию

Если assets/.DS_Store отслеживается, проверьте состояние и сохраните нужную локальную работу, затем удалите только запись индекса:

git rm --cached -- assets/.DS_Store

Проверьте подготовленное удаление перед коммитом. --cached сохраняет вашу локальную копию, но коллеги могут потерять отслеживаемую копию при получении удаления. Повторяйте только для проверенных путей; избегайте массового удаления и перестройки всего индекса.

git diff --cached --name-status

Как игнорировать файлы, которые Git уже отслеживает?

Точное поведение и подробности описаны в официальных источниках: Документация Git · Документация git rm · Документация git check-ignore