Hola usuario de nuestra página, encontramos la solución a lo que buscas, deslízate y la hallarás aquí.
Solución:
Puede incluir explícitamente un archivo si ya ha sido excluido por un patrón (como heredar su configuración de .gitignore o un directorio excluido) anteriormente en el archivo .gcloudignore.
Para incluir un archivo llamado foo
asegúrese de que lo siguiente viene después de la regla que lo excluyó:
!foo
Para incluir una carpeta llamada ‘barra’, asegúrese de que lo siguiente viene después de la regla que la excluyó:
!bar/
Fuente: https://cloud.google.com/sdk/gcloud/reference/topic/gcloudignore
Los 2 archivos son en su mayoría ortogonales, sirven para diferentes propósitos y son utilizados por diferentes herramientas.
La única relación entre ellos (aparte de .gcloudignore
heredando en gran medida de la .gitignore
sintaxis y comportamiento) es la capacidad de incluir la .gitignore
archivo dentro del .gcloudignore
archivo, que es lo que haces con:
#!include:.gitignore
El efecto secundario de eso es, por supuesto, que todo en .gitignore
también se ignorará durante las implementaciones de GAE, como observó. Del tema gcloud gcloudignore:
Esto incluirá el contenido de un
.gitignore
-archivo de estilo en esa ruta en ese punto del archivo. No se repite (es decir, el archivo incluidocannot
#!include
otro archivo) y no puede estar en ningún otro lugar que no sea el directorio de nivel superior que se va a cargar.
Pero tu no tienes que incluir .gitignore
. Todo lo que necesita hacer es eliminar esa inclusión y especificar exactamente los patrones de .gitignore
que desea ignorar en las implementaciones. Si entiendo correctamente la descripción de su objetivo, la .gcloudignore
se vería algo como esto:
.gcloudignore
.git
.gitignore
node_modules
module_data_import
module_calendar
Si duplicar esos patrones en ambos archivos le molesta, una alternativa potencial (en mi humilde opinión, bastante compleja) puede que ser aprovechar la capacidad de git para ignorar archivos basados en patrones recopilados de múltiples fuentes (sin embargo, con diferentes alcances, así que preste atención a eso). Consulte https://git-scm.com/docs/gitignore y ¿Puedo incluir otro archivo .gitignore en un archivo .gitignore? (como #include en lenguajes tipo c).
Si puede encontrar una división adecuada que se ajuste a su aplicación, podría:
- Mantener dentro
.gitignore
solo los patrones para los archivos que también desea ignorar en las implementaciones (manteniendo, por supuesto, el.gitignore
inclusión en.gcloudignore
) - coloque los otros patrones en otro archivo que git usa para determinar las reglas de ignorar; por lo tanto, git los ignoraría, pero dado que este archivo no está incluido en
.gcloudignore
no serían ignorados en los despliegues.
ACTUALIZAR siguiente comentario:
En la respuesta inicial, no consideré el caso en el que el comando gcloud en sí mismo ejecuta operaciones que apuntan directa o indirectamente a operaciones de repositorio de código fuente debajo del capó que, si se usa git como sistema de control de versiones, se verá afectado, por supuesto, por la presencia y el contenido del archivo .gitignore. En tal caso, podría decirse que el comando gcloud en sí usa el archivo .gitignore (independientemente del archivo .gcloudignore).