2009-11-30 10 views
80

me gustaría dejar de Git de mostrar archivos ignorados en git status, porque tener toneladas de documentación y archivos de configuración en la lista de cambiado, pero no actualizados archivos, hace que la lista de media inútil.Keep ignorado archivos fuera de git status

¿Es normal que Git muestre estos archivos?

puse la información ignoran en un archivo .gitignore en el directorio raíz del repositorio Git y no se añaden al utilizar git add . pero parece que no están totalmente ignoradas o bien, a medida que aparecen en la lista y mencionada no se muestre en la lista impresa por git ls-files --others -i --exclude-standard. Solo se muestran los archivos que coinciden con los patrones en ~/.gitignore.

¿Podría ser porque en una etapa anterior no los ignoré y se cometieron al menos una vez?

Respuesta

138

Como encontré in this post, .gitignore solo funciona para archivos no rastreados. Si ha añadido archivos al repositorio, puede:

git update-index --assume-unchanged <file> 

o eliminarlos de repositorio

git rm --cached <file> 

Edición

This article explica que también

+0

'git update-index --assume-unchanged ' no funcionó (lo había intentado), pero 'git rm --cached ' hizo el trabajo. ¡Gracias! – knuton

+2

update-index funcionó para mí. Problema similar donde el estado de git muestra archivos ignorados ... muy molesto. +1 –

+1

Todavía tengo este problema. Ninguno de los comandos anteriores funcionó para mí. En ambos casos, Git dice que no tiene conocimiento de los archivos en cuestión, pero siguen apareciendo en estado de git :( – Cfreak

0

Desde hombre Git-lsfiles:

-i, --ignored 
Show ignored files in the output. Note that this also reverses any exclude list present. 

Personalmente, tienden a mantener doxygen archivos en mi árbol de código fuente, por lo que simplemente añadidos este a mi .gitignore (que está en el directorio superior de mi fuente árbol):

docs/* 

Espero que ayude.

0

como esto

git --ignored myfolder 

y mostrarán estado sólo para myfolder

8

que he tenido este problema llegar así, probablemente se deba a que ha añadido sus directorios/archivos ignorado a .gitignore después de que fueron marcados como "para ser rastreados" por GIT en un flujo de compromiso inicial.

Así que hay que borrar la caché de seguimiento GIT, así:

git rm --cached -r [folder/file name]

Una explicación más detallada se puede leer aquí: http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html

El comando anterior también se eliminan los restos de la carpeta/archivos de su origen GIT remoto. Entonces sus repositorios GIT se vuelven limpios.

-1

Sin duda, esto funciona,

git rm --cached -r [folder/file name]

0

Asumo que desea no añadir tmp (Plataforma Visual Studio)

1- añadir líneas siguientes para su archivo local de .gitignore

## ignore tmp 
/tmp/ 
./tmp/ 

3- copia de seguridad y eliminar la carpeta tmp localmente. (Copia de seguridad en otro lugar, p. Ej., Computadora de escritorio?)

4- Confirmar cambios en Local que Sincronizar en Remoto (por ejemplo, github).

Después de estos pasos, su directorio tmp no se cargará nuevamente.