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
.
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:Este patrón hace lo siguiente:
/
*/
) para que git pueda buscar archivosdocker-compose.yml
en todos los directorios**/docker-compose.yml
, lo que significa que git buscará archivosdocker-compose.yml
recursivamente en todos los directorios.gitignore
para que sea rastreado por gitCon 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
yfolderB
) en lugar de buscar esos archivos de forma recursiva en todos los directorios.