Как вы показываете неотслеживаемые файлы, которые не существуют в .gitignore

167

Я использую, git status -uчтобы показать неотслеживаемые файлы. А в терминале я вижу множество неотслеживаемых файлов, которые мне нужно отследить, например, модульные тесты, личную документацию и т. Д. Я их вставил .gitignore, но, похоже, git statusвсе равно их показывает.

Как вы показываете только неотслеживаемые файлы, которые не существуют в .gitignore.

justjoe
источник
11
если неотслеживаемые файлы отображаются в состоянии git, они не игнорируются .gitignore должным образом. Можете ли вы показать вам рабочую структуру каталогов и содержимое .gitignore?
максимум
7
Согласитесь с @max, должно работать. Вот дикая догадка: если вы в Windows, имейте в виду, что .gitignore, в отличие от Windows, чувствителен к регистру. Поэтому, если вы игнорируете * .txt и на диске есть Test.TXT, он не будет проигнорирован.
Джо Уайт

Ответы:

269

Вы можете явно перечислить то, что отслеживается и не отслеживается, следующим образом, чтобы увидеть, видит ли Git и уважает ли вас .gitignore. Если вы публикуете свое .gitignoreсодержание, git statusвывод и / dirили lsмы можем лучше помочь вам.

Список игнорируемых файлов

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

Список неотслеживаемых файлов

$ git ls-files . --exclude-standard --others
Мэтью Маккалоу
источник
3
Если вы видите файлы, которые, по вашему мнению, не были в вашем .gitignore, возможно, в вашем проекте скрывается еще один файл. Вывести это с `найти. имя .gitignore`.
Jpadvo
@ Мэтью-Маккулаф Отличный ответ! Я добавлю несколько псевдонимов за это спасибо! @jpadvo Можете ли вы привести пример использования findметода?
lacostenycoder
Если вам нужен короткий список, скажем, вы игнорируете node_modules и не хотите видеть все дерево, добавьте, --directoryчтобы печаталась только игнорируемая папка верхнего уровня (это ближе к состоянию git).
Генри Блит,
2
Чтобы сделать это понятным, git ls-files --others --exclude-standard --ignoredперечисляются неотслеживаемые игнорируемые файлы и git ls-files --others --exclude-standardнеотслеживаемые не игнорируемые. Подробнее об этом здесь .
х-юри
1
Обратите внимание, что по умолчанию git ls-files --othersне отображаются пустые каталоги. Чтобы вывести список пустых каталогов, добавьте --directoryопцию. Это не очевидно из справочной страницы, но может быть выведено. --directory: Если весь каталог классифицируется как «другой», показывается только его имя (с косой чертой), а не все его содержимое. , --no-empty-directory: Не перечислять пустые каталоги. Не имеет эффекта без --directory.
catanman
-3
git update-index --no-assume-unchanged <file>
Брукс Фолк
источник
11
Пожалуйста, добавьте пояснения к вашему ответу
М Халид Джунаид
-6

Использование:

git config status.showuntrackedfiles no 
Охад Садан
источник
На текущей версии Git я получаю, error: Invalid untracked files mode 'yes'когда я пытаюсь использовать это.
Майк
1
Возможные значения no, normal, all. Это объясняется здесь: git-scm.com/docs/git-config
Мухаммед Гелбана
4
Это не отвечает на вопрос.
lacostenycoder