2011-04-21 34 views
12

Quiero crear un repositorio para mi proyecto Magento. Hay muchas carpetas y archivos en el directorio raíz y cambio ocasionalmente solo una carpeta: app/code/local/No puedo entender cómo gitignore ignora las carpetas

Todo lo demás que deseo ignorar. Pero ... no puedo. Mi archivo .gitignore:

* 
!app/code/local/ 
!app/code/local/* 

Luego, cuando intento agregar carpeta a repo consigo un error:

git add app/code/local/Mds/ 

The following paths are ignored by one of your .gitignore files: 
app 
Use -f if you really want to add them. 
fatal: no files added 

Puede alguien por favor ayuda con esto?

Respuesta

17

Trate de abajo para ignorar como que necesita:

/* 
!/app/ 
/app/* 
!/app/code/ 
/app/code/* 
!/app/code/local/ 

La siguiente discusión fue muy útil: http://git.661346.n2.nabble.com/negated-list-in-gitignore-no-fun-td1675067.html, especialmente lo siguiente de Linus:

That's by design. You've chosen to ignore those directories; they match "*" themselves. Thus, 'git add .' doesn't descend into them looking for files.

Así que, básicamente, para cada nivel y Tienes que entrar, ignorar esa carpeta e ignorar los contenidos dentro de esa carpeta.

+0

Yo tampoco trabajé .. – user718085

+0

He editado mi respuesta. Lo he verificado. – manojlds

+0

No puedo creer que no funcione. Incluso creo la nueva carpeta en la aplicación/código/local pero el error es el mismo ... – user718085

0

¿Es este .gitignore en la raíz del repositorio?

Prueba esto:

/* 
!/app/code/local 
+0

Lo siento, no ayudó = (El .gitignore está en la carpeta raíz. – user718085

0

Según the documentation:

"It is not possible to re-include a file if a parent directory of that file is excluded."

Por ejemplo, si ya había estado trabajando con el repositorio y dijo Git ignorar el directorio padre, hizo algunas confirmaciones, y luego regresó y trató de permitir que algunos sub -directorio del directorio excluido, no incluirá ese subdirectorio aunque su archivo .gitignore sea correcto. Para evitar esto, es necesario forzar añadirlo (con la bandera -f):

git add -f {file} 

Una vez que esto se ha hecho, se realizará un seguimiento cambios posteriores.

Cuestiones relacionadas