Jak pokazać nieśledzone pliki, które nie istnieją w .gitignore

167

Używam git status -udo pokazywania nieśledzonych plików. A na terminalu widzę wiele nieśledzonych plików, których muszę nie śledzić, takich jak testy jednostkowe, dokumentacja osobista itp. Umieściłem je .gitignore, ale wygląda na to, że git statusnadal je pokazują.

Jak wyświetlić tylko nieśledzone pliki, które nie istnieją w .gitignore.

justjoe
źródło
11
jeśli nieśledzone pliki są wyświetlane w statusie git, nie są one poprawnie ignorowane przez .gitignore. czy możesz pokazać strukturę katalogów roboczych i zawartość .gitignore?
maksymalnie
7
Zgadzam się z @max, powinno działać. Oto szalone przypuszczenie: jeśli korzystasz z systemu Windows, pamiętaj, że .gitignore, w przeciwieństwie do systemu Windows, rozróżnia wielkość liter. Więc jeśli zignorujesz * .txt, a na dysku znajduje się plik Test.TXT, nie zostanie on zignorowany.
Joe White

Odpowiedzi:

268

Możesz wyraźnie wymienić to, co jest śledzone i nie jest śledzone w następujący sposób, aby sprawdzić, czy Git widzi i honoruje Twoje pliki .gitignore. Jeśli opublikujesz swoje .gitignoretreści, git statuswyniki dirlub lsbędziemy mogli lepiej Ci pomóc.

Wyświetl zignorowane pliki

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

Lista nieśledzonych plików

$ git ls-files . --exclude-standard --others
Matthew McCullough
źródło
3
Jeśli widzisz pliki, które Twoim zdaniem nie znajdują się w Twoim .gitignore, być może w Twoim projekcie ukrywa się inny. Wykryj to za pomocą polecenia `find. -name .gitignore`.
jpadvo,
@ matthew-mccullough Świetna odpowiedź! Dodam aliasy do tych podziękowań! @jpadvo Czy możesz podać przykład użycia findmetody?
lacostenycoder
Jeśli chcesz mieć krótką listę, powiedz, że ignorujesz node_modules i nie chcesz widzieć całego drzewa, dodaj, --directoryaby wydrukowany został tylko folder najwyższego poziomu, który jest ignorowany (jest to bliższe statusowi git).
Henry Blyth,
2
Aby było jasne, git ls-files --others --exclude-standard --ignoredwyświetla listę nieśledzonych zignorowanych plików i git ls-files --others --exclude-standardnieśledzonych , a nie ignorowanych. Więcej na ten temat tutaj .
x-yuri
1
Zauważ, że domyślnie git ls-files --othersnie wyświetla pustych katalogów. Aby wyświetlić puste katalogi, dodaj --directoryopcję. Nie jest to oczywiste ze strony podręcznika, ale można to wywnioskować. --directory: Jeśli cały katalog jest sklasyfikowany jako „inny”, pokaż tylko jego nazwę (z końcowym ukośnikiem), a nie całą zawartość. . --no-empty-directory: Nie wyświetlaj pustych katalogów. Nie ma żadnego efektu bez --directory.
catanman
-3
git update-index --no-assume-unchanged <file>
Brooks Folk
źródło
11
Proszę o wyjaśnienie swojej odpowiedzi
M Khalid Junaid
-6

Posługiwać się:

git config status.showuntrackedfiles no 
Ohad Sadan
źródło
W bieżącej wersji gita otrzymuję, error: Invalid untracked files mode 'yes'gdy próbuję tego użyć.
Mike
1
Możliwe są następujące wartości no, normal, all. Wyjaśniono to tutaj: git-scm.com/docs/git-config
Muhammad Gelbana
4
To nie odpowiada na pytanie.
lacostenycoder