.gitignore не понимает подстановочный знак моей папки на windows - PullRequest
16 голосов
/ 25 февраля 2010

У меня странная проблема с .gitignore в Windows.

Я хочу, чтобы git игнорировал все .exe файлы, кроме тех, которые находятся в папке Dependencies (и всех подпапках).

Итак, у меня есть:

.gitignore:

*.exe
!/Dependencies/**/*.exe

Это, к сожалению, не работает.

Между тем, это делает:

*.exe
!/Dependencies/folder/subfolder/*.exe

Так что мне интересно, я что-то напутал или это какая-то ошибка?

Я использую msysgit в Windows (Windows 7 x64) версии 1.6.5.1-preview20091022

Заранее спасибо за любой вклад:)

Ответы [ 3 ]

18 голосов
/ 23 апреля 2013

Начиная с git 1.8.2 (8 марта 2013 г.) , ** теперь поддерживается:

Шаблоны в .gitignore и .gitattributes файлах могут иметь **/ в виде шаблона, который соответствует 0 или более уровням подкаталога .

например. «foo/**/bar» соответствует «bar» в самом «foo» или в подкаталоге «foo».

В вашем случае это означает, что эта строка теперь может поддерживаться:

!/Dependencies/**/*.exe
2 голосов
/ 30 апреля 2010

Вы можете добавить файл .gitignore в папку Dependencies с помощью

*. Ех

внутри. Очевидным недостатком является то, что игнорируемые спецификации теперь разбросаны по нескольким файлам.

2 голосов
/ 25 февраля 2010

Документация .gitignore гласит:

git рассматривает шаблон как глобус оболочки, подходящий для использования fnmatch (3) с флагом FNM_PATHNAME

Возможно, что fnmatch на вашей платформе не поддерживает ** в пути.

...