Подтвердить что ты не робот

Способ проверки файла .gitignore

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

4b9b3361

Ответ 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".