Как мне сделать 'git status', чтобы он не отображал неотслеживаемые файлы без использования .gitignore?

317

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

Росс Роджерс
источник

Ответы:

498

Использовать это:

git status -uno

что эквивалентно:

git status --untracked-files=no

Это немного скрыто в руководствах, но на странице man для статуса написано "поддерживает те же опции, что и в git-commit", так что именно здесь вам и нужно поискать.

Даниэль Брюс
источник
1
Где ты это пишешь? В терминал или в файл?
FrenkyB
1
Это операция командной строки; не редактировать файл git config.
Росс Роджерс
Что, если я это сделал, git reset --hard <commit id>, затем я получил git status -uno, ничего не отображается, отображаются только неотслеживаемые файлы
Snow Bases
130

Также:

git config status.showuntrackedfiles no
Бомбы
источник
9
Это отлично подходит для репо, в котором всегда есть неотслеживаемые файлы, такие как один в вашем домашнем каталоге для точечных файлов.
Дэйв
15
Дэйв, Возможно, .gitignoreлистинг лучше всего подходит для "известных неизвестных", тогда как вы можете захотеть увидеть, что "неизвестные неизвестные" всплывают заново.
Росс Роджерс
15

Обратите внимание, что начиная с git 1.8.3 (22 апреля 2013 г.) , вы будете знать о том, --untracked-files=noдаже если вы вообще не добавили эту опцию!

« git status» предлагает пользователям изучить использование --untracked-files=noопции, когда это занимает слишком много времени.

См. Commit https://github.com/git/git/commit/5823eb2b28696bf0eb25f6ca35b303447869f85 :

В некоторых репозиториях пользователи испытывают, что git statusкоманда " " занимает много времени.
Команда тратит некоторое время на поиск в файловой системе неотслеживаемых файлов.

Объясните компромисс между выбором по умолчанию, normalчтобы помочь пользователям сделать правильный выбор лучше, прежде чем говорить о переменной конфигурации.

В git statusдокументации сейчас говорится:

Когда -uопция не используется, отображаются неотслеживаемые файлы и каталоги (т. Е. Те же, что указаны normal), чтобы помочь вам не забыть добавить вновь созданные файлы.
Поскольку для поиска неотслеживаемых файлов в файловой системе требуется дополнительная работа, этот режим может занять некоторое время в большом рабочем дереве.
Вы можете использовать noдля git statusболее быстрого возврата без отображения неотслеживаемых файлов
.

Значение по умолчанию можно изменить с status.showUntrackedFilesпомощью переменной конфигурации, описанной в git config.

VonC
источник
2
@Tshepang спасибо. Я отредактировал ответ, включив в него правильную ссылку, а также добавив точную фиксацию, в которой было внесено указанное изменение.
VonC
Я новичок в git - не могли бы вы сказать мне, где написать эти команды, чтобы не показывать неотслеживаемые файлы? Я пытался записать их в терминал, но неотслеживаемые файлы все еще показывают.
FrenkyB
@FrenkyB Что вы набрали именно в своем терминале (кстати, какую ОС? И какую версию git вы используете?)
VonC
OS = Windows 10 Pro, версия Source Tree = 1.9.10.0, как я могу проверить версию GIT? Я набрал в терминале: git commit -u --untracked-files = no. Я все еще вижу эти файлы в Source Tree.
FrenkyB