.gitignore не понимает подкаталог моей папки в окнах
У меня возникла странная проблема с .gitignore
в Windows.
Я хочу, чтобы git игнорировал все файлы .exe
, кроме тех, что находятся в папке Dependencies
(и всех подпапках).
Итак, у меня есть:
.gitignore
:
*.exe
!/Dependencies/**/*.exe
Это, к сожалению, не работает.
Между тем, это делает:
*.exe
!/Dependencies/folder/subfolder/*.exe
Так что мне интересно, я что-то испортил или это какая-то ошибка?
Я запускаю msysgit в Windows (Windows 7 x64) версии 1.6.5.1-preview20091022
Заранее благодарим за любой ввод:)
Ответы
Ответ 1
Поскольку git 1.8.2 (8 марта 2013 г.), теперь поддерживается **
:
Образцы .gitignore
и .gitattributes
файлов могут иметь **/
, как шаблон, который соответствует 0 или более уровням подкаталога.
например. "foo/**/bar
" соответствует "bar
" в "foo
" или в подкаталоге "foo
".
В вашем случае это означает, что теперь эта строка может поддерживаться:
!/Dependencies/**/*.exe
Ответ 2
.gitignore документация говорит:
git рассматривает шаблон как оболочку оболочки, подходящую для использования fnmatch (3) с флагом FNM_PATHNAME
Возможно, что fnmatch на вашей платформе не поддерживает ** в пути.
Ответ 3
Вы можете добавить файл .gitignore
в папку Dependencies
с помощью
*. Ехе
внутри. Очевидным недостатком является то, что игнорирование спецификаций теперь разбросано среди нескольких файлов.