2 файла в основном ортогональны, они служат разным целям и используются разными инструментами.
Единственное отношение между ними (кроме .gcloudignore
, унаследованного от синтаксиса и поведения .gitignore
) - это возможность включить файл .gitignore
в файл .gcloudignore
, что вы и делаете с:
#!include:.gitignore
Побочным эффектом этого является, конечно, то, что все в .gitignore
также будет игнорироваться при развертывании GAE, как вы заметили. Из темы gcloud gcloudignore :
Это будет включать в себя содержимое файла .gitignore
стиля
Путь в этой точке в файле. Это не повторяется (то есть
включенный файл cannot
#!include
другой файл) и не может быть
в любом месте, кроме каталога верхнего уровня для загрузки.
Но вам не нужно включать .gitignore
. Все, что вам нужно сделать, это удалить это включение и точно указать шаблоны из .gitignore
, которые вы хотите игнорировать при развертывании. Если я правильно понимаю описание вашей цели, .gcloudignore
будет выглядеть примерно так:
.gcloudignore
.git
.gitignore
node_modules
module_data_import
module_calendar
Если дублирование этих шаблонов в обоих файлах вас беспокоит потенциальной альтернативой (ИМХО довольно сложной), может использовать возможность git игнорировать файлы, основанные на шаблонах, собранных из нескольких источников (хотя и с разными областями действия). так что обратите на это внимание). См. https://git -scm.com / docs / gitignore и Можно ли включить другой файл .gitignore в файл .gitignore? (например, #include в c-подобных языках) .
Если вы можете найти правильное разделение, подходящее для вашего приложения, вы можете:
- оставьте в
.gitignore
только шаблоны для файлов, которые вы также хотите игнорировать при развертывании (сохраняя, конечно, включение .gitignore
в .gcloudignore
)
- поместите другие шаблоны в другой файл, который git использует для определения правил игнорирования - таким образом, они будут игнорироваться git, но, поскольку этот файл не включен в
.gcloudignore
, они не будут игнорироваться при развертывании.