2011-09-30 23 views
6

Sé que hay muchas preguntas sobre cómo ignorar los directorios, y por lo general no he tenido ningún problema hasta ahora, pero ahora estoy atrapado con algo que no entiendo.¿Por qué git ignora todos los archivos en un directorio excepto uno?

Aquí es mi estructura de directorios:

/src 
/war 
    com.example.MyProject/ 
    WEB-INF/ 
    classes/ 
    deploy/ 
    lib/ 

quiero ignorar el contenido de directorios classes/, deploy/ y com.example.MyProject/, y aquí está mi archivo .gitignore:

*.log 
war/WEB-INF/classes/ 
war/WEB-INF/deploy/ 
com.example.MyProject/ 

archivos en com.example.MyProject/ son automáticamente generado, y git los ignora a todos excepto un archivo llamado com.example.MyProject.nocache.js. De hecho, cuando lo haga git status me sale:

# On branch myBranch 
# Changed but not updated: 
# (use "git add <file>..." to update what will be committed) 
# 
#  modified: .gitignore 
#  ...... 
#  modified: war/com.example.MyProject/com.example.MyProject.nocache.js 

¿Por qué se niega git ignorar que una sola fila en ese directorio? ¿Qué estoy haciendo mal?

Respuesta

5

Si un archivo ya está siendo rastreado por Git, agregar el archivo a .gitignore no impedirá que Git lo rastree. Tendrá que hacer git rm --cached <file> para mantener el archivo en su árbol y luego ignorarlo

+0

me mudo! que se había agregado accidentalmente en una confirmación anterior: solo tenía que eliminarlo. ¡Gracias! – MarcoS

+0

Y para los usuarios de egit project> team> untrack, esto eliminará todos los archivos en esa carpeta (desmarcándolos) y luego confirmará el cambio –

5

Si el archivo ya se ha agregado al índice, aún se mantendrá allí, aunque lo agregue al archivo .gitignore.

intente eliminar el archivo desde el índice git:

git rm --cached war/com.example.MyProject/com.example.MyProject.nocache.js 

La opción --cached se asegura de que el archivo permanece en su carpeta y cada vez es eliminado del índice

+1

+1 para la explicación complementaria: "La opción --cached se asegura de que el archivo permanezca en su carpeta y simplemente se elimina del índice ". –

Cuestiones relacionadas