Ответ 1
Это игнорирует корневые файлы и корневые каталоги, а затем игнорирует каталог корневого bin:
/*
/*/
!/bin/
Таким образом вы получаете весь каталог bin, включая подкаталоги и их файлы.
Я хочу игнорировать все файлы в моем репозитории, кроме тех, которые встречаются в подкаталоге bin
. Я попытался добавить следующее к своему .gitignore
:
*
!bin/*
Однако это не имеет желаемого эффекта: я создал новый файл внутри bin/
, но при выполнении git status
показывается nothing to commit (working directory clean)
.
Любые предложения?
Это игнорирует корневые файлы и корневые каталоги, а затем игнорирует каталог корневого bin:
/*
/*/
!/bin/
Таким образом вы получаете весь каталог bin, включая подкаталоги и их файлы.
Здесь как игнорировать все, кроме одного каталога " MY_SUPER_DUPER_TEMPLATE_directory" в некотором каталоге
Структура:/bitrix/templates/ MY_SUPER_DUPER_TEMPLATE_directory
/*
!/bitrix
/bitrix/*
!/bitrix/templates
/bitrix/templates/*
!/bitrix/templates/MY_SUPER_DUPER_TEMPLATE_directory
*.DS_Store
*.gitignore
Вы должны исключить все на пути к пунктам назначения, но вы должны включить пункты назначения:
Примечание. Это файл исключения (т.е..gitignore), поэтому логика инвертирована. Игнорировать все, кроме каталога tsp, игнорировать все в каталоге tsp, кроме каталога src...
/*
!/tsp
/tsp/*
!/tsp/src
/tsp/src/*
!/tsp/src/*.h
!/tsp/src/*.cpp
!/tsp/src/data.txt
!/.gitignore
Единственная проблема, с которой вы столкнулись, заключается в том, что сам каталог bin
не соответствует шаблону bin/*
, поэтому git даже не смотрит в каталог bin
.
Есть два решения, которые spring не имеют.
.gitignore
:
*
!/bin/
!bin/*
или
.gitignore
:
*
!/bin/
bin/.gitignore
:
!*
Я предпочитаю второе решение, так как первое решение не перестает игнорировать файлы в каталоге bin
, которые находятся в подкаталогах, которые не называются bin
. Это может быть или не иметь значения в вашей ситуации.
Из официального git doc, один из примеров гласит:
Пример для исключения всего, кроме определенной директории foo/bar (обратите внимание на /* - без косой черты подстановочный знак также исключит все, что находится внутри foo/bar):
$ cat .gitignore
# exclude everything except directory foo/bar
/*
!/foo
/foo/*
!/foo/bar
Для пояснения о ведущей косой черте: Когда использовать начальную косую черту в gitignore.
Попробуйте выполнить последнюю версию GIT.
*
!*/
!/path/to/your/dir/**
Я думаю, лучший способ - привязать каждый шаблон к началу git, запустив шаблон с косой чертой:
/*
!/public_html
!/.gitignore
Вместо игнорирования всех файлов он будет игнорировать только файлы верхнего уровня, а не те, которые вы не хотите игнорировать.
Этот .gitignore
работает для меня:
*/
/*
!bin/
попробуйте эту неясную ошибку.
!bin**/**
Надеюсь, это поможет :)
Поддержка документов git bug sample
PS: попробуйте сначала, прежде чем комментировать.
Я должен был сделать это недавно:
*
!sub-dir/
!sub-dir/*
Я не уверен, почему мне нужно две строки для исключения одной папки, но это то, что сработало для меня и для macos.