Git - игнорировать определенные файлы, содержащиеся в определенных папках - PullRequest
19 голосов
/ 09 июня 2009

Я использую msysgit и у меня есть дерево проекта, которое содержит много папок / папок в дереве. Используя файл .gitignore в корне проекта, мне нужно игнорировать все файлы .dll, которые находятся в папке / папке в любом месте дерева проекта. Я пробовал "bin / *. Dll", но это не работает, я предполагаю, что это работает только против папки bin / в корне проекта.

Ответы [ 6 ]

14 голосов
/ 05 сентября 2010

Просто возникла похожая проблема и понял: файлы уже были добавлены и зарегистрированы в git.

Как распознать разницу: Git показывал файлы не как «новые», а как «модифицированные». Эта информация стоила мне довольно много времени ...

Если это проблема, просто "git rm" эти файлы и начните сначала. Внезапно .gitignore начинает работать как положено.

13 голосов
/ 12 июня 2009

У меня просто есть /bin в моем файле, и это похоже на работу. Игнорирует всю папку (в отличие от конкретных файлов в ней)

Вот полное содержание на данный момент (все еще развивается).

.svn*
obj/
bin/
*.suo
*.user
Log/
log/
*.db
11 голосов
/ 09 июня 2009

Обновление август 2016 (семь лет спустя, Git 2.9.3 / Git 2.10)

**/bin/*.dll

Это работает для любой глубины.


Оригинальный ответ (2009, Git 1.6)

Вы пробовали:

**/bin/*.dll

Он работает с моим msysgit1.6.3 (с файлом .gitignore в корневом каталоге рабочего пространства Git).

На самом деле вышесказанное будет игнорировать только 'x/bin/z.dll', а не 'x/y/bin/z.dll'.

Другой синтаксис может быть:

**/*/bin/*.dll

Но это будет только глубина 3, а не глубина 2!

Так что если у вас не так уж много места, где * .dll нужно игнорировать, самым простым решением будет локальный файл .gitignore в этих каталогах 'bin' ...

Или сборник директив, охватывающих основные первые глубины:

bin/*.dll
**/bin/*.dll
**/*/bin/*.dll
**/**/*/bin/*.dll

и так далее, все в одном файле .gitignore.

4 голосов
/ 02 сентября 2011

.gitignore на windows, просто не похоже на работу. Я использую бета-версию msysgit v 1.7.6, и она просто не работает так, как на странице руководства .gitignor. Теперь, если я скопирую содержимое моего файла .gitignore в файл $ GIT_DIR / info / exclude внутри репо, все работает.

Итак, облом в том, что это не повторяется, но лучше, чем ничего.

0 голосов
/ 20 июля 2018

В зависимости от языка, который вы используете, вы можете выбрать его из ссылка

Например, если вы используете Java, вы можете использовать gitignore

Также https://www.gitignore.io/ позволяет вам создать файл gitingore онлайн, вам просто нужно ввести операционную систему, IDE или язык программирования и на его основе он выдаст вам файл gitignore. С его помощью вы можете легко создать файл gitignore для вашего проекта.

0 голосов
/ 02 апреля 2010

* / бен у меня сработало

Я думаю, что * / bin / тоже.

...