git ignore 在使用 GCloud 的 gcloudignore 时不忽略文件

git ignore not ignoring a file when using GCloud's gcloudignore

我有一个忽略 secret.py 的规则(在我的例子中是 production.py),一旦我添加了 .gcloudignore,github 就停止遵循该规则... gitignore 和 gcloudignore 之间是否存在某种我不知道的规则?

my-project/
    .git
    .gitignore
    my-project/
        .gcloudignore
        settings/
            base.py
            local.py
            production.py

我的.gitignore:

my-project/my-project/settings/production.py
my-project/my-project/settings/local.py

我的 .gcloudignore:

# This file specifies files that are *not* uploaded to Google Cloud Platform
# using gcloud. It follows the same syntax as .gitignore, with the addition of
# "#!include" directives (which insert the entries of the given .gitignore-style
# file at that point).
#
# For more information, run:
#   $ gcloud topic gcloudignore
#
.gcloudignore
# If you would like to upload your .git directory, .gitignore file or files
# from your .gitignore file, remove the corresponding line
# below:
.git
.gitignore

*.sqlite3
settings/local.py

最终结果是 'local.py' 没有被推送到 google 云或 github。 但是,'production.py' 被推送到 github 和 gcloud。

看起来您正在强制忽略之前应用的规则。

尽管确保通过

启用了 cloudignore
gcloud config set gcloudignore/enabled true

并确保将 .gcloudignore -> 放在项目的根目录中/基本上是你所在的位置。git。gitignore reside。

如果您之前(可能是不小心)提交了对 git 的更改,其中包括 my-project/my-project/settings/production.py,那么它将保留在存储库的一部分,即使它随后被添加到 .gitignore ].

假设您位于项目的根目录下,您可以使用

$ git log my-project/my-project/settings/production.py

查看其 git 历史记录。如果它存在于你的回购协议中,你可以做

$ git rm --cached my-project/my-project/settings/production.py

remove it from the repo,但将其保存在您的本地(工作)环境中。