Как .gitignore файлы рекурсивно
Я пытаюсь избежать следующего шаблона в моем файле .gitignore
.
MyPrject/WebApp/Scripts/special/*.js
MyPrject/WebApp/Scripts/special/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*/*.js
Мы попробовали:
MyPrject/WebApp/Scripts/special/**.js
MyPrject/WebApp/Scripts/special/**/*.js
Это, однако, не сработало. Это git в Windows. Есть ли более сжатый способ сделать это, не повторяя ничего?
Ответы
Ответ 1
В соответствии с git 1.8.2 это:
MyPrject/WebApp/Scripts/special/**/*.js
Должен работать в соответствии с этим ответом. Он также работает для меня в Windows 7 с использованием Sourcetree 1.6.12.0 и версии git, которую он устанавливает (1.8.4-preview20130916).
Чтобы gitignore каждый файл и папка в каталоге рекурсивно:
MyPrject/WebApp/Scripts/special/**
Ответ 2
Следующая страница руководства gitignore:
[...] git рассматривает шаблон как оболочку, подходящую для потребление fnmatch (3) с флагом FNM_PATHNAME: подстановочные знаки в шаблон не будет соответствовать/в пути.
Итак, это ясно означает, что нет способа указать определенное количество каталогов между двумя строками, например между special
и js
.
Тем не менее, вы можете иметь файл .gitignore
для каждого каталога, поэтому, возможно, в вашем случае следующий контент
*.js
в следующем месте
MyPrject/WebApp/Scripts/special/.gitignore
было бы достаточно?