Joh*_*ews 18 git github gitignore google-cloud-platform gcloud
我在我的某些文件夹中忽略了.gitignore它,因为我不希望它在 Github 上发布。
但是,这些文件在部署到 GCP(本地包)时必不可少。
如果我拿出.gitignore从.gcloudignore随后的文件我确实想忽略(如venv, .idea, .pyc上传,这是我不想要的东西)。
我怎么能只包含.gitgnorein的一部分.gcloudignore?
.gcloudignore
.gcloudignore
.git
.gitignore
node_modules
#!include:.gitignore
Run Code Online (Sandbox Code Playgroud)
.gitignore
# This I want to ignore in .gcloudignore
.Python
env/
build/
# This I want to keep in .gcloudignore
module_data_import
module_calendar
Run Code Online (Sandbox Code Playgroud)
Chr*_*man 17
如果某个文件已被先前在 .gcloudignore 文件中的模式(例如继承 .gitignore 设置或排除的目录)排除,则您可以明确包含该文件。
要包含名为 的文件foo,请确保在排除它的规则之后出现以下内容:
!foo
Run Code Online (Sandbox Code Playgroud)
要包含名为“bar”的文件夹,请确保在排除它的规则之后出现以下内容:
!bar/
Run Code Online (Sandbox Code Playgroud)
来源:https : //cloud.google.com/sdk/gcloud/reference/topic/gcloudignore
Dan*_*scu 10
这两个文件大多是正交的,它们用于不同的目的并被不同的工具使用。
它们之间的唯一关系(除了从语法和行为中.gcloudignore大量继承之外.gitignore)是能够将.gitignore文件包含在.gcloudignore文件中,这就是您所做的:
#!include:.gitignore
Run Code Online (Sandbox Code Playgroud)
那副作用是的,当然,这一切都在.gitignore也将在GAE的部署被忽略,因为你观察到。从gcloud 主题 gcloudignore:
这将包括
.gitignore文件中该路径处的-style 文件的内容。它不会递归(即包含的文件是cannot#!include另一个文件),并且除了要上传的顶级目录外不能在任何地方。
但您不必包含.gitignore. 您需要做的就是删除该包含并准确指定.gitignore您想要在部署中忽略的模式。如果我正确理解您的目标描述,.gcloudignore它将看起来像这样:
.gcloudignore
.git
.gitignore
node_modules
module_data_import
module_calendar
Run Code Online (Sandbox Code Playgroud)
如果在两个文件中复制这些模式让您感到困扰,那么一个潜在的替代方案(恕我直言相当复杂)可能是利用 git 的能力来忽略基于从多个来源收集的模式的文件(尽管范围不同,因此请注意这一点)。请参阅 https://git-scm.com/docs/gitignore和我可以在 .gitignore 文件中包含其他 .gitignore 文件吗?(就像 C 类语言中的 #include)。
如果您能找到适合您的应用程序的合适拆分,您可以:
.gitignore您在部署时也想忽略的文件模式(当然,保留.gitignore包含在 中.gcloudignore).gcloudignore 因此在部署时不会被忽略。更新以下评论:
在最初的回答中,我没有考虑 gcloud 命令本身执行直接或间接针对源代码存储库操作的操作的情况,如果使用 git 作为版本控制系统,当然会受到影响.gitignore 文件的存在和内容。在这种情况下,可以认为 gcloud 命令本身使用 .gitignore 文件(无论 .gcloudignore 文件如何)。
| 归档时间: |
|
| 查看次数: |
4677 次 |
| 最近记录: |