У меня много проектов в моем решении .Net. Я хотел бы исключить все папки «bin / Debug» и «bin / Release» (и их содержимое), но все же включить саму папку «bin» и все содержащиеся в ней DLL.
.gitignore с «bin /» игнорирует папки «Debug» и «Release», но также любые dll, содержащиеся в папке «bin».
«bin / Debug» или «bin / Release» в файле .gitignore не исключают каталоги, если только я полностью не квалифицирую шаблон игнорирования как «Solution / Project / bin / Debug» - что я не хочу делать как я Мне нужно будет включить этот полный шаблон для каждого проекта в моём решении, а также добавить его для любых новых проектов.
Какие-либо предложения?
Ответы:
Вы пробовали подстановочные знаки?
В git версии 1.8.2 вы также можете использовать
**
подстановочный знак для соответствия любому уровню подкаталогов:источник
**
. Должно быть исправлено сейчас. ссылкаВы можете использовать .gitignore на верхнем уровне, чтобы игнорировать все каталоги в проекте с одинаковыми именами. Например:
Это должно обновиться немедленно, чтобы оно было видно, когда вы делаете git status. Убедитесь, что эти каталоги еще не добавлены в git, так как это переопределит игнорирование.
источник
$GIT_DIR/.git/info/exclude
файл OP .git rm -rf DirectoryName/
Вопрос не прошу об игнорировании всех подкаталогов, но я не мог найти ответ в любом месте, так что я отправлю его:
*/*
.источник
git add
игнорировать каталог и все файлы во всех подкаталогах этого каталога. Я попыталсяdirname/
,dirname/*
,dirname/**
,dirname/*/*
, даже в отчаянииdirname/*/*/*
,dirname/*/*/*/*
,dirname/*/*/*/*/*
.*/*
игнорирует все подкаталоги, но не файлы в текущем каталоге. Игнорировать определенный подкаталог - это обычное использование gitignore.dirname
,dirname/
Иdirname/*
вся работа для меня. Что-нибудь в этом каталоге уже зафиксировано?.git
каталог между попытками, аgit init
затемgit add --all .
(также пытался без--all
), используя 1.9.4.msysgit.1. Каждый непустой подкаталог в моем названном каталоге добавляется в индекс (проверено в TortoiseGit иgit status
). При.gitignore
запуске нет соответствующих строк,!
но должен быть конфликт. Решено пока, удалив папки во времяadd
. Думаю, это что-то, что потребует немного больше копаний, чтобы предоставить необходимую информацию для диагностики. Спасибо, что заверили меня, что я не неправильно понимаю синтаксис.Все приведенные выше ответы верны, но я не думаю, что упомянуто то, что как только вы добавите файл из этого каталога в репозиторий, вы не сможете игнорировать этот каталог / подкаталог, содержащий этот файл (git будет игнорировать эту директиву ).
Чтобы игнорировать уже добавленные файлы, запустите
В противном случае вам придется сначала удалить все файлы из целевого каталога репозитория, а затем вы можете проигнорировать эту папку.
источник
Помимо размещения правильных записей в вашем файле .gitignore, если вы пытаетесь игнорировать что-то, уже добавленное в репозиторий, вы должны сделать
git rm -r /path/to/dir
и зафиксировать это, прежде чем добавлять каталог в ваш файл .gitignore. Иначе единственное, что git будет игнорировать, это ваша директива игнорирования.источник
Единственный способ заставить это работать на моей машине - это сделать так:
Обратите внимание, как вы должны явно разрешить контент для каждого уровня, который вы хотите включить. Так что, если у меня есть подкаталоги 5 глубоко под темами, мне все еще нужно разобрать это.
Это из комментария @ Ярина здесь: https://stackoverflow.com/a/5250314/1696153
Это были полезные темы:
Я тоже пробовал
а также
**/wp-content/themes/**
или
/wp-content/themes/**/*
Ничто из этого не сработало для меня. Много следов и ошибок!
источник
Чтобы исключить контент и подкаталоги:
Чтобы просто исключить все подкаталоги, но взять содержимое, добавьте «/»:
источник
Чтобы игнорировать все подкаталоги, вы можете просто использовать:
Это работает с версией 1.8.2 git.
источник
Общий способ игнорирования всех подпапок при продолжении отслеживания файлов, находящихся в
/bin
каталоге, заключается в добавлении следующей строки в файл .gitignore вашего проекта:Если вы хотите игнорировать только определенные именованные подпапки, вы можете сделать:
в северном направлении если
bin
каталог не находится в корне вашего проекта (рядом с файлом .gitignore), то вместо eg.bin/*/*
вам может понадобитьсяpath/to/bin/*/*
источник