Saltar al contenido

Mostrar todos los archivos ignorados en git

Agradecemos tu ayuda para difundir nuestros tutoriales sobre las ciencias de la computación.

Solución:

Tener find (probablemente en UNIX/Linux), puede ejecutar el siguiente comando en la carpeta raíz de su repositorio git:

find . -type f  | git check-ignore --stdin

find . -type f enumerará todos los archivos en la carpeta de forma recursiva, mientras que git check-ignore enumerará aquellos archivos de la lista, que son efectivamente ignorados por .gitignore.


los check-ignore comando es relativamente nuevo. Si tu .git versión no lo admite ya, puede usar la siguiente solución con un shell compatible con POSIX (como bash, sh, dash, zsh). Se basa en el hecho de que .gitignore contiene patrones globales que están destinados a ser interpretados por un shell. La solución itera sobre los patrones globales de .gitignorelos expande en el shell y filtra los directorios del mismo:

while read glob ; do
    if [ -d "$glob" ] ; then
        # Be aware of the fact that even out of an ignored 
        # folder a file could have been added using git add -f 
        find "$glob" -type f -exec 
            bash -c "FILE=;[ $(git status -s $FILE) == "" ] && echo $FILE" ;
    else
        for file in "$glob" ; do
            # Again, be aware of files which add been added using -f
            bash -c "FILE=;[ $(git status -s $FILE) == "" ] && echo $FILE" ;
        done
    fi
# Pipe stderr to /dev/null since .gitignore might contain entries for non 
# existing files which would trigger an error message when passing them to find
done < .gitignore 2>/dev/null | sort

My Kung-Fu para enumerar todos los archivos ignorados recursivamente con reglas

find . -type d | grep -v .git | awk 'print $1"/"' | git check-ignore -v --stdin

Hacer esto en una ventana de Windows PowerShell es sencillo:

PS> Get-ChildItem -Recurse | Select-Object Fullname | git check-ignore --stdin -v

La salida se ve un poco rara, como si estuviera diseñada para Cygwin o bash, que no uso, por lo que esta puede ser mi propia configuración incorrecta, pero aún así es muy útil para descubrir por qué se ignora ese archivo.

Comentarios basados ​​en git 2.22.0.windows.1

valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *