Как включить файлы в .gcloudignore, которые игнорируются в .gitignore - PullRequest
0 голосов
/ 25 июня 2019

У меня есть определенные папки, которые я игнорирую в моем .gitignore, так как я не хочу, чтобы он был опубликован на Github.

Однако эти файлы необходимы для развертывания в Google Cloud (локальные пакеты).

Если я достану .gitignore из .gcloudignore, то загружаются файлы, которые я хочу игнорировать (например, venv, .idea, .pyc), чего я не хочу.

Как туда включить только часть .gitgnore в .gcloudignore?


.gcloudignore

.gcloudignore
.git
.gitignore

node_modules
#!include:.gitignore

.gitignore

# This I want to ignore in .gcloudignore
.Python
env/
build/

# This I want to keep in .gcloudignore
module_data_import
module_calendar

1 Ответ

1 голос
/ 10 июля 2019

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, они не будут игнорироваться при развертывании.
...