В Git файлы можно игнорировать на трёх разных уровнях, и это не только привычный .gitignore. Первый уровень — сам .gitignore. Он лежит в корне репозитория, попадает в коммиты и работает для всех, кто клонирует проект.
Второй уровень — файл .git/info/exclude. Он живёт в служебной папке .git каждого репозитория, но не индексируется. Изменения в нём не попадают в Git. Это удобно для личных файлов: например, у вас есть notes.txt, который не должен уйти в общий репозиторий, но и засорять .gitignore им не хочется — добавляете его в exclude, и всё.
Третий уровень — глобальный файл ~/.config/git/ignore. Он действует на все репозитории на вашей машине. Идеальное место для файлов вроде .DS_Store на macOS — добавил раз, и во всех проектах они игнорируются.
Можно настроить и собственный путь для глобального ignore-файла. Для этого выполните: git config --global core.excludesFile ~/.gitignore_global. Чтобы вернуть стандартный путь, сбросьте настройку: git config --global --unset core.excludesFile.
Проверить, какой именно файл игнорирует конкретное имя, помогает команда git check-ignore -v. Например, для .DS_Store она выведет строку вроде .gitignore:1:.DS_Store, если правило лежит в корневом .gitignore, или /Users/nelson/.config/git/ignore:2:.DS_Store — если в глобальном. Если файл никем не игнорируется, команда просто ничего не покажет.