Как мне сделать '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.


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.