git status -> Mostra i file che verranno aggiunti (gestiti) nelle sottodirectory


91

Supponiamo di avviare un repository git in una cartella e di avere diverse sottodirectory al suo interno.

Ho diversi modelli di globbing .gitignoreper escludere i file nelle sottodirectory. Tuttavia, quando lo faccio git status prima di mettere in scena qualsiasi cosa , git status mostra solo i nomi delle sottocartelle che verranno aggiunte, senza essere specifico su quali file in ciascuna sottodirectory verranno aggiunti (messi in scena) se lo faccio git add ..

È interessante notare, però, git statusè esplicito sui file che verranno commessi dopo gli stage I con git add ..

C'è comunque da chiedere git statusdi essere esplicito sui file per i file che sarebbero stati messi in scena ?

Risposte:


148

Provare:

git status -u

o la forma lunga:

git status --untracked-files

che mostrerà i singoli file nelle directory non tracciate.

Ecco la descrizione dettagliata -udell'opzione dalla pagina man di git-status :

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

Mostra file non tracciati.

Il parametro mode è facoltativo (il valore predefinito è all) e viene utilizzato per specificare la gestione dei file non tracciati; quando -unon è utilizzato, l'impostazione predefinita è normal, ovvero mostra file e directory non tracciati.

Le possibili opzioni sono:

  • no - Non mostrare file non tracciati
  • normal - Mostra file e directory non tracciati
  • all - Mostra anche i singoli file nelle directory non tracciate.

L'impostazione predefinita può essere modificata utilizzando la status.showUntrackedFilesvariabile di configurazione documentata in git-config (1) .


11

Puoi semplicemente usare

git add --dry-run .

nella radice del tuo repository che ti fornisce un elenco di qualsiasi file in qualsiasi sottodirectory che verrebbe aggiunto durante la valutazione .gitignore.



1

Che ne dici di mettere un .gitignorefile nelle tue sottodirectory invece lungo la linea di

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3

Non ho nulla nel mio .gitignoreche assomigli a quello che hai pubblicato (ad esempio ignorando directory o sottodirectory con eccezioni). Inoltre, perché sarebbe importante? A proposito, git statusrestituisce l'elenco dei file che verrebbero salvati correttamente dopo lo staging con git add ..
Amelio Vazquez-Reina

1
So che non lo fai. Rimuovi la directory dalla radice.gitignore e aggiungila .gitignorenella tua sottodirectory: puoi averne più di una. Nidificano
Adrian Cornish

-1

usa il comando git git ls-files -o per elencare i file non tracciati

invece -o usa -c --cached Mostra i file memorizzati nella cache nell'output (impostazione predefinita)

-d --deleted Mostra i file eliminati nell'output

-m --modified Mostra i file modificati nell'output


Questa domanda è specifica per mostrare quali file verranno aggiunti, tenendo conto di .gitignore. La tua risposta ignora .gitignore.
Jared
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.