Есть ли способ узнать, почему какой-то файл игнорируется git (то есть, какое правило в .gitignore
файле вызывает игнорирование файла)?
Представьте, что у меня есть этот (или гораздо более сложный сценарий с сотнями папок и десятками .gitignore
файлов:
/
-.gitignore
-folder/
-.gitignore
-subfolder/
-.gitignore
-file.txt
Если я запускаю git add folder/subfolder/file.txt
git, то могу жаловаться на игнорирование:
The following paths are ignored by one of your .gitignore files:
folder/subfolder/file.txt
Use -f if you really want to add them.
Есть ли способ узнать, какие из всех возможных .gitignore
имеют правило игнорировать этот файл, а также показать правило? Подобно:
The following paths are ignored by your folder/.gitignore file (line 12: *.txt)
folder/subfolder/file.txt
Use -f if you really want to add them.
Или просто:
$ git why-is-ignored folder/subfolder/file.txt
folder/.gitignore:12:*.txt
GIT_TRACE_EXCLUDE=1 git status
скоро появится дополнительный способ отладки .gitignore
правил. Смотрите мой отредактированный ответ ниже
git check-ignore
скоро (git1.8.5 / 1.9) появится--no-index
опция. Смотрите мой ответ ниже