AFAIK, в Git нет встроенного способа сделать это (возможно, это потребует дополнительной производительности).
Однако, это должно быть возможно автоматизировать. Сначала мы хотим найти файлы, которые нужно игнорировать:
grep --files-with-match --recursive '// GITIGNORE' .
Для каждого результата мы можем проверить, не игнорируется ли он уже с git check-ignore
. Если нет, мы добавляем его в локальный файл игнорирования.
Собираем все это вместе в bash скрипт:
#!/bin/bash
grep --files-with-match --recursive '// GITIGNORE' . | while read filename
do
if [ $(git check-ignore --quiet "$filename") -ne 0 ]
then
echo "$filename" >> .git/info/exclude
fi
done
Если вы добавляете шаг сборки для запускатот сценарий в конце сборки, который должен дать желаемый результат. В зависимости от того, как часто меняются игнорируемые имена файлов, вы можете время от времени усекать .git/info/exclude
.
(Если у вас нет доступа к grep
или bash
, должна быть возможностьсделать то же самое с другими инструментами в вашей системе выбора.)