Я пытаюсь избежать следующего шаблона в моем .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. Есть ли более краткий способ сделать это, не повторяя вещи?
Ответы:
Начиная с git 1.8.2, это:
Должен работать в соответствии с этим ответом . Это также работает для меня в Windows 7 с использованием Sourcetree 1.6.12.0 и версии git, которую он устанавливает (1.8.4-preview20130916).
Чтобы рекурсивно gitignore каждый файл и папку в каталоге:
источник
/
в начале. Пример:/MyProject/WebApp/Scripts/special/**/*.js
.gitignore
в этом вопросе находится в корне репо (родительский каталог/Webapp
).foo/bar/*/*
(вторая строка)!foo/bar/**/*.js
Он работал только для одного уровня подкаталогов, но не рекурсивно.Следующая страница руководства gitignore:
Таким образом, очевидно, что нет способа указать определенное количество каталогов между двумя строками, например между
special
иjs
.Тем не менее, у вас может быть
.gitignore
файл для каждого каталога, поэтому, возможно, в вашем случае следующий контентв следующем месте
будет достаточно?
источник
MyPrject/WebApp/Scripts/special*.js
и соответствуетMyPrject/WebApp/Scripts/specialfile.js
, а такжеMyPrject/WebApp/Scripts/special/a/b/c/file.js
. Однако по какой-то причине поведение изменилось, и мой текущий обходной путь - перечислить каталоги по отдельности. Я использую GitHub для Windows.find MyPrject/WebApp/Scripts/special -type d -printf 'echo "*.js" >> %h/.gitignore\n git add %h/.gitignore\n' | sh
Это работает для меня в OSX.
источник
Попробуйте выполнить
git rm -r --cached MyPrject/WebApp/Scripts/special/
Ваш упомянутый каталог, возможно, был кэширован git и будет отображаться в неотслеживаемых файлах. После очистки кеша убедитесь, что он включен.gitignore
.источник