¿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?


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

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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.