Wie können Sie nicht verfolgte Dateien anzeigen, die in .gitignore nicht vorhanden sind?

167

Ich verwende git status -u, um nicht verfolgte Dateien anzuzeigen. Und auf dem Terminal sehe ich viele nicht verfolgte Dateien, die ich nicht mehr verfolgen muss, wie z. B. Komponententests, persönliche Dokumentation usw. Ich habe sie abgelegt .gitignore, aber es scheint, dass sie git statusimmer noch angezeigt werden.

Wie zeigen Sie nur untracked Dateien , die in nicht existieren .gitignore.

justjoe
quelle
11
Wenn nicht verfolgte Dateien im Git-Status angezeigt werden, werden sie von .gitignore nicht ordnungsgemäß ignoriert. Können Sie die Struktur des Arbeitsverzeichnisses und den Inhalt von .gitignore anzeigen?
Max
7
Stimmen Sie mit @max überein, es sollte funktionieren. Hier ist eine wilde Vermutung: Wenn Sie unter Windows arbeiten, beachten Sie, dass bei .gitignore im Gegensatz zu Windows zwischen Groß- und Kleinschreibung unterschieden wird. Wenn Sie also * .txt ignorieren und eine Test.TXT auf der Festplatte vorhanden ist, wird diese nicht ignoriert.
Joe White

Antworten:

268

Sie können explizit auflisten, was verfolgt und nicht verfolgt wird, um zu sehen, ob Git Ihre sieht und ehrt .gitignore. Wenn Sie Ihre .gitignoreInhalte, git statusAusgaben und / diroder lsBeiträge veröffentlichen, können wir Sie besser unterstützen.

Ignorierte Dateien auflisten

$ git ls-files . --ignored --exclude-standard --others

Listen Sie nicht verfolgte Dateien auf

$ git ls-files . --exclude-standard --others
Matthew McCullough
quelle
3
Wenn Sie Dateien sehen, von denen Sie nicht glauben, dass sie sich in Ihrem .gitignore befinden, versteckt sich möglicherweise eine andere in Ihrem Projekt. Frettchen Sie es mit `find. -name .gitignore`.
Jpadvo
@ matthew-mccullough Tolle Antwort! Ich werde einige Aliase für diese hinzufügen, danke! @jpadvo Können Sie ein Beispiel für die Verwendung der findMethode geben?
Lacostenycoder
Wenn Sie eine kurze Liste wünschen, sagen wir, Sie ignorieren node_modules und möchten nicht den gesamten Baum sehen, fügen Sie hinzu, --directorydamit nur der Ordner der obersten Ebene gedruckt wird, der ignoriert wird (dies ist näher am Git-Status).
Henry Blyth
2
Um dies zu verdeutlichen, werden git ls-files --others --exclude-standard --ignorednicht verfolgte ignorierte Dateien und git ls-files --others --exclude-standardnicht verfolgte nicht ignorierte Dateien aufgelistet . Mehr dazu hier .
X-Yuri
1
Beachten Sie, dass standardmäßig git ls-files --otherskeine leeren Verzeichnisse aufgelistet werden. Um leere Verzeichnisse aufzulisten, fügen Sie die --directoryOption hinzu. Dies ist aus der Manpage nicht ersichtlich, kann aber abgeleitet werden. --directory: Wenn ein ganzes Verzeichnis als "anderes" klassifiziert ist, zeigen Sie nur seinen Namen (mit einem abschließenden Schrägstrich) und nicht seinen gesamten Inhalt an. . --no-empty-directory: Leere Verzeichnisse nicht auflisten. Hat ohne --directory keine Wirkung.
Catanman
-3
git update-index --no-assume-unchanged <file>
Brooks Folk
quelle
11
Bitte fügen Sie eine Erklärung für Ihre Antwort
M Khalid Junaid
-6

Verwenden:

git config status.showuntrackedfiles no 
Ohad Sadan
quelle
In der aktuellen Release-Version von git bekomme ich, error: Invalid untracked files mode 'yes'wenn ich versuche, das zu verwenden.
Mike
1
Mögliche Werte sind no, normal, all. Es wird hier erklärt: git-scm.com/docs/git-config
Muhammad Gelbana
4
Dies beantwortet die Frage nicht.
Lacostenycoder