2010-10-12 7 views
11

He estado sacando mi cabello investigando la red y varios documentos sobre archivos .gitignore. Estoy un poco n00b con Unix/Terminal (usando Mac OS X) y no puedo imaginar cómo ignorar los contenidos de una carpeta (cualquier tipo de contenido, ya sea un archivo u otra carpeta, no importa qué tan profundo sea).gitignore y cómo ignorar un nombre de directorio común y su contenido

Estoy trabajando en un proyecto que genera archivos de imagen dentro de una estructura de archivos consistente, excepto que estamos obteniendo conflictos de combinación con respecto a los permisos de usuario. Me gustaría ignorar las carpetas que contienen las imágenes generadas para que podamos evitar más tirones de pelo teniendo que ajustar los permisos en cada tirón. Solo estoy teniendo problemas para que funcione el archivo .gitignore, así que tengo que encontrar el patrón correcto para la coincidencia de contenido de la carpeta. Quiero que sea lo suficientemente general como para que pueda abarcar fácilmente todo el sitio (de modo que si alguna carpeta contiene un nombre de carpeta en particular, ignorará su contenido).

He intentado:

# Images 
resample/ 
resize/ 
min/ 

Y ...

# Images 
resample/* 
resize/* 
min/* 

Y ...

# Images 
*/resample/* 
*/resize/* 
*/min/* 

Y muchas más combinaciones con resultados insatisfactorios. Nunca conseguí que el patrón foldername/**/* funcione alguna vez. ¡Cualquier ayuda con respecto a este problema sería muy apreciada!

+1

El primer ejemplo debería funcionar. Pero es sensible a mayúsculas y minúsculas, ¿estás seguro de que los nombres de las carpetas son minúsculas? –

+0

Sí, todo está en minúsculas. –

Respuesta

23

Gracias a los carteles anteriores por su ayuda. Después de profundizar más, descubrí cómo implementar correctamente las nuevas reglas .gitignore. El problema era que previamente las imágenes se está realizando el seguimiento, así que tuve que quitar la referencia a los archivos dentro del archivo .git/index, al igual que ...

// Remove all tracked files from the index 
// (doesn't remove the file, just the reference) 
git rm -r --cached . 

// Add all the files again 
// (files and folders specified by .gitignore aren't added to the index) 
git add . 

// Commit to save changes 
git commit -am "gitignore update" 
+0

Gracias por agregar esto. Estoy a punto de empezar a usar git, todo esto es necesario para saber cosas. – kevpie

+2

Creo que no necesita '-a' en los indicadores de confirmación si ha agregado los archivos anteriormente. – Noich

8

Usted está buscando gitignore

Un archivo gitignore especifica archivos intencionadamente sin seguimiento que git debe ignorar. Tenga en cuenta que todos los archivos de gitignore realmente se refieren solo a los archivos que aún no han sido rastreados por git;

Si su archivo o carpeta está en el repositorio, debe eliminarse del repositorio para que no se pueda utilizar.

También tenga cuidado con la distinción entre mayúsculas y minúsculas en sus diseños.

Su primera lista debería funcionar suponiendo que esas carpetas no están actualmente bajo el control de la versión.

# Images 
resample/ 
resize/ 
min/ 
+0

Gracias por eso. Después de un poco más de investigación y experimentación, descubrí un par de cosas interesantes ... –

Cuestiones relacionadas