¿Cómo mostrar archivos no rastreados que no existen en .gitignore?

167

Estoy usando git status -upara mostrar archivos sin seguimiento. Y en el terminal, veo muchos archivos sin rastrear que necesito rastrear, como pruebas unitarias, documentación personal, etc. Los he colocado .gitignore, pero parece que git statustodavía los muestra.

¿Cómo mostrar solo los archivos no rastreados que no existen .gitignore?

justjoe
fuente
11
si los archivos no rastreados se muestran en estado git, .gitignore no los ignora correctamente. ¿puede mostrarle la estructura del directorio de trabajo y los contenidos .gitignore?
máximo
77
De acuerdo con @max, debería funcionar. Aquí hay una conjetura: si estás en Windows, ten en cuenta que .gitignore, a diferencia de Windows, distingue entre mayúsculas y minúsculas. Entonces, si ignora * .txt y hay un Test.TXT en el disco, no se ignorará.
Joe White

Respuestas:

268

Puede enumerar explícitamente lo que se está rastreando y sin rastrear de la siguiente manera para ver si Git está viendo y honrando su .gitignore. Si publica sus .gitignorecontenidos, git statusresultados, diro lspodemos ayudarlo mejor.

Lista de archivos ignorados

$ git ls-files . --ignored --exclude-standard --others

Lista de archivos sin seguimiento

$ git ls-files . --exclude-standard --others
Matthew McCullough
fuente
3
Si ve archivos que no creía que estaban en su .gitignore, puede haber otro escondido en su proyecto. Descubrirlo con `find. -name .gitignore`.
jpadvo
@ matthew-mccullough ¡Gran respuesta! ¡Agregaré algunos alias para estas gracias! @jpadvo ¿Puede dar un ejemplo de uso para el findmétodo?
lacostenycoder
Si desea una lista corta, digamos que está ignorando node_modules y no quiere ver el árbol completo, agregue --directorypara que solo se imprima la carpeta de nivel superior que se ignora (esto está más cerca del estado de git).
Henry Blyth
2
Para que quede claro, git ls-files --others --exclude-standard --ignoredenumera los archivos git ls-files --others --exclude-standardignorados sin seguimiento y los archivos no ignorados sin seguimiento. Más sobre esto aquí .
x-yuri
1
Tenga en cuenta que, de forma predeterminada, git ls-files --othersno se enumeran los directorios vacíos. Para enumerar directorios vacíos, agregue la --directoryopción. Esto no es obvio en la página del manual, pero puede deducirse. --directory: Si un directorio completo se clasifica como "otro", muestre solo su nombre (con una barra inclinada final) y no todo su contenido. . --no-empty-directory: No enumere directorios vacíos. No tiene efecto sin --directorio.
catanman
-3
git update-index --no-assume-unchanged <file>
Brooks Folk
fuente
11
Agregue alguna explicación para su respuesta
M Khalid Junaid
-6

Utilizar:

git config status.showuntrackedfiles no 
Ohad Sadan
fuente
En la versión de lanzamiento actual de git, aparece error: Invalid untracked files mode 'yes'cuando intento usar eso.
Mike
1
Los valores posibles son no, normal, all. Aquí se explica: git-scm.com/docs/git-config
Muhammad Gelbana
44
Esto no responde la pregunta.
lacostenycoder