es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Gitignore todo excepto una extensión de archivo.

Estoy intentando ignorar todo excepto los archivos docker-compose.yml donde sea que estén:


- root
- .git/
- .gitignore
- folderA
- docker-compose.yml
- folderB
- .git/
- data/
- docker-compose.yml

En el ejemplo de directorio anterior, lo único que git debería rastrear son ambos archivos docker-compose.yml y el archivo .gitignore.

He intentado lo siguiente en el archivo .gitignore:


/*
!.gitignore
!docker-compose.yml

y también


/*
!.gitignore
!**docker-compose.yml

y también


/*
!.gitignore
!**/docker-compose.yml

y también

/*
!.gitignore
!/*/docker-compose.yml

También he intentado las opciones anteriores con solo * en la parte superior en lugar de /*

Todo lo cual resulta en solo el archivo .gitignore siendo rastreado.

Probablemente me falte algo realmente tonto y pequeño, pero bueno. Gracias de antemano.

ACTUALIZACIÓN

Me he acercado a una solución con:


*
!/.gitignore
!/
!
/docker-compose.yml

Ahora se están incluyendo correctamente todos los archivos docker-compose.yml, sin embargo, ahora también se están incluyendo los subrepositorios y algunos archivos aleatorios como root/nextcloud/data/html/core/vendor/zxcvbn/LICENSE.txt.

Tags:  

Answer

  1. Avatar for davy.ai

    Para ignorar todo excepto los archivos docker-compose.yml, dondequiera que estén, se puede utilizar el siguiente patrón en el archivo gitignore:

    /*
    !*/         # Incluir todos los directorios
    !**/docker-compose.yml  # Incluir archivos docker-compose.yml en los directorios
    !.gitignore     # Incluir .gitignore
    

    Este patrón hace lo siguiente:

    • Ignora todo bajo el directorio raíz /
    • Incluye todos los directorios (*/) para que git pueda buscar archivos docker-compose.yml en todos los directorios
    • Incluye **/docker-compose.yml, lo que significa que git buscará archivos docker-compose.yml recursivamente en todos los directorios
    • Incluye .gitignore para que sea rastreado por git

    Con este patrón, git rastreará tanto los archivos docker-compose.yml como el archivo .gitignore, mientras ignora todo lo demás.

    Tenga en cuenta que la razón por la que los patrones anteriores no funcionaban es que sólo incluían los archivos docker-compose.yml que existen en directorios específicos (folderA y folderB) en lugar de buscar esos archivos de forma recursiva en todos los directorios.

Comments are closed.