Есть ли способ проверить файл .gitignore, чтобы вы быстро находили пути или пути двойников, которые больше не существуют? Обычно, когда проект мал, это не обязательно, но с большим количеством веток и слияний файлов .gitignore это может прийти в руки.
Способ проверки файла .gitignore
Ответ 1
Не совсем. Одна команда, которая могла бы приблизиться, была бы git check-ignore
Выберите файл, который, как вы знаете, должен быть проигнорирован, и проверьте вывод:
git check-ignore -v -- /path/to/ignored/file
Вы увидите правила вашего .gitignore
, которые применяются.
Обновить март 2016: Git 2.8 добавит новый способ отладки файлов .gitignore
и их правил.
В контексте запрета игнорирования подпапки (даже если ее родительская папка игнорируется: см. пример здесь), я нашел этот камень Thái Ngọc Duy (pclouds
):
dir.c
: исключение трассировки поддержки
man git
включает в себя:
GIT_TRACE_EXCLUDE:
Включает трассировочные сообщения, которые могут помочь отлаживать обработку
.gitignore
.
См. "GIT_TRACE
" для доступных параметров вывода трассировки.
С GIT_TRACE_EXCLUDE
, установленным в 1, вы увидите (после git status
) отладочные сообщения stderr, например:
exclude: from ...
exclude: xxx => n/a
exclude: xxx vs. yyy at line z: => www
Ответ 2
Вы можете выполнить script, чтобы проверить его. Я сделал один для вас там:
#!/bin/bash
set -o noglob
for file in `cat .gitignore | grep -v \#`
do
printf "$file"
find . -name "$file" | wc -l
done
он отображает правила, за которыми следует число совпадений в текущем каталоге и рекурсивно. Пример:
*.log 31
*.gz 0
*~ 42
*.swp 0
*.aux 33
*.pdf 51
*.out 7
*.toc 6
*.nav 1
*.snm 1
.DS_Store 0
Вы можете ограничить вывод на строку, содержащую 0
, если хотите, в egrep "\b0\b"
.