git status -> Mostrar archivos que se agregarán (en etapas) en subdirectorios

88

Digamos que inicio un repositorio de git en una carpeta y tengo varios subdirectorios en él.

Tengo varios patrones globulares .gitignorepara excluir archivos en los subdirectorios. Sin embargo, cuando lo hago git status antes de preparar algo , git status solo muestra los nombres de las subcarpetas que se agregarán, sin especificar qué archivos de cada subdirectorio se agregarán (organizarán) si lo hago git add ..

Curiosamente, sin embargo, git statuses explícito sobre los archivos que se confirmarán después de preparar archivos con git add ..

¿Hay alguna forma de pedir git statusser explícito sobre los archivos de los archivos que se organizarían ?

Amelio Vázquez-Reina
fuente

Respuestas:

147

Tratar:

git status -u

o la forma larga:

git status --untracked-files

que mostrará archivos individuales en directorios sin seguimiento.

Aquí está la descripción detallada de la -uopción de la página de manual de git-status :

-u[<mode>]
--untracked-files[=<mode>]

Muestra archivos sin seguimiento.

El parámetro de modo es opcional (por defecto es all ) y se utiliza para especificar el manejo de archivos sin seguimiento; cuando -uno se usa, el valor predeterminado es normal, es decir, mostrar archivos y directorios sin seguimiento.

Las posibles opciones son:

  • no - No mostrar archivos sin seguimiento
  • normal - Muestra archivos y directorios sin seguimiento
  • all - También muestra archivos individuales en directorios sin seguimiento.

El valor predeterminado se puede cambiar usando la status.showUntrackedFilesvariable de configuración documentada en git-config (1) .

Penghe Geng
fuente
9

Simplemente puede usar

git add --dry-run .

en la raíz de su repositorio, lo que le brinda una lista de cualquier archivo en cualquier subdirectorio que se agregaría al considerar .gitignore.

cweigel
fuente
1

¿Qué tal poner un .gitignorearchivo en sus subdirectorios en lugar de la línea de

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3
Adrian Cornish
fuente
No tengo nada en mi .gitignoreque se parezca a lo que publicaste (es decir, ignorando directorios o subdirectorios con excepciones). Además, ¿por qué importaría eso? Por cierto, git statusdevuelve la lista de archivos que se confirmarían correctamente después de la preparación con git add ..
Amelio Vazquez-Reina
1
Yo se que tu no. Elimine el directorio de la raíz .gitignorey agréguelo .gitignoreen su subdirectorio; puede tener más de uno. Anidan
Adrian Cornish
-1

use el comando git git ls-files -o para listar el archivo sin seguimiento

en su lugar -o use -c --cached Mostrar archivos en caché en la salida (predeterminado)

-d --deleted Muestra los archivos eliminados en la salida

-m --modified Muestra archivos modificados en la salida

Pradeep Pandey
fuente
Esta pregunta es específica para mostrar qué archivos se agregarán, teniendo en cuenta .gitignore. Su respuesta ignora .gitignore.
Jared