Git-Status -> Dateien anzeigen, die in Unterverzeichnissen hinzugefügt (bereitgestellt) werden

85

Angenommen, ich starte ein Git-Repository in einem Ordner und habe mehrere Unterverzeichnisse darin.

Ich habe mehrere Globbing-Muster .gitignore, um Dateien in den Unterverzeichnissen auszuschließen. Wenn ich dies jedoch tue, git status bevor ich etwas inszeniere , zeigt der Git-Status nur die Namen der Unterordner an, die hinzugefügt werden, ohne genau anzugeben, welche Dateien in jedem Unterverzeichnis hinzugefügt (bereitgestellt) werden, wenn ich dies tue git add ..

Interessanterweise geht git statuses jedoch explizit um die Dateien, die festgeschrieben werden, nachdem ich Dateien mit inszeniert habe git add ..

Gibt es trotzdem zu fragen git statusexplizit über Dateien für die Dateien zu sein, würde inszeniert ?

Amelio Vazquez-Reina
quelle

Antworten:

145

Versuchen:

git status -u

oder die lange Form:

git status --untracked-files

Hier werden einzelne Dateien in nicht verfolgten Verzeichnissen angezeigt.

Hier ist die detaillierte Beschreibung der -uOption auf der Git-Status-Manpage :

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

Nicht verfolgte Dateien anzeigen.

Der Parameter mode ist optional (standardmäßig all) und wird verwendet, um die Behandlung von nicht verfolgten Dateien festzulegen. Wenn -ues nicht verwendet wird, ist die Standardeinstellung normal, dh nicht verfolgte Dateien und Verzeichnisse anzeigen.

Die möglichen Optionen sind:

  • no - Keine nicht verfolgten Dateien anzeigen
  • normal - Zeigt nicht verfolgte Dateien und Verzeichnisse an
  • all - Zeigt auch einzelne Dateien in nicht verfolgten Verzeichnissen an.

Die Standardeinstellung kann mithilfe der status.showUntrackedFilesin git-config (1) dokumentierten Konfigurationsvariablen geändert werden .

Penghe Geng
quelle
9

Sie können einfach verwenden

git add --dry-run .

im Stammverzeichnis Ihres Repositorys, das Ihnen eine Liste aller Dateien in einem beliebigen Unterverzeichnis gibt, die bei der Überlegung hinzugefügt würden .gitignore.

Cweigel
quelle
1

Wie wäre es, .gitignorewenn Sie stattdessen eine Datei in Ihre Unterverzeichnisse einfügen

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3
Adrian Cornish
quelle
Ich habe nichts in meinem .gitignore, was so aussieht, wie Sie es gepostet haben (dh Verzeichnisse oder Unterverzeichnisse mit Ausnahmen ignorieren). Warum sollte das auch wichtig sein? Gibt übrigens git statusdie Liste der Dateien zurück, die nach dem Staging mit festgeschrieben werden git add ..
Amelio Vazquez-Reina
1
Ich weiß, dass du es nicht tust. Entfernen Sie das Verzeichnis aus dem Stammverzeichnis .gitignoreund fügen Sie es .gitignorein Ihr Unterverzeichnis ein - Sie können mehrere haben. Sie nisten
Adrian Cornish
-1

Verwenden Sie den Befehl git git ls-files -o, um nicht verfolgte Dateien aufzulisten

Verwenden Sie stattdessen -o -c --cached. Zeigt zwischengespeicherte Dateien in der Ausgabe an (Standard).

-d --deleted Zeigt gelöschte Dateien in der Ausgabe an

-m --modified Zeigt geänderte Dateien in der Ausgabe an

Pradeep Pandey
quelle
Diese Frage zeigt speziell, welche Dateien hinzugefügt werden, während .gitignore berücksichtigt wird. Ihre Antwort ignoriert .gitignore.
Jared