Что это значит, когда git показывает только каталог, содержащий неотслеживаемые файлы, но не сами файлы?
Относительный новичок к мерзавцу, так что это может быть что-то довольно простое. С другой стороны, я довольно долго искал этот ответ, прежде чем спрашивать.
В моем git-репозитории, если я создаю какие-либо файлы в определенном подкаталоге (на несколько уровней ниже основного каталога репозитория), и запускаю git status
git не перечисляет файлы в этом каталоге, а только его имя.
Я бы подумал, что это как-то связано с количеством уровней вниз, но другие неотслеживаемые файлы в других подкаталогах с таким же количеством уровней (или более) перечислены без проблем.
Кто-нибудь знает, есть ли какая-либо настройка или какая-то запись в каком-либо файле, где это может вызвать такое поведение?
1 ответ
По умолчанию не отображаются файлы внутри неотслеживаемых каталогов из-за соображений производительности. ls
неотслеживаемый каталог, как git
не имеет его содержание проиндексировано.
От git help status
:
-u[<mode>]
--untracked-files[=<mode>]
Показать неотслеживаемые файлы.
mode
параметр является необязательным (по умолчаниюall
) и используется для указания обработки неотслеживаемых файлов.Возможные варианты:
no
- не показывать неотслеживаемые файлы
normal
- показывает неотслеживаемые файлы и каталоги
all
- Также показывает отдельные файлы в неотслеживаемых каталогах.когда
-u
опция не используется, отображаются неотслеживаемые файлы и каталоги (то же самое, что и указаниеnormal
), чтобы не забыть добавить недавно созданные файлы. Поскольку для поиска неотслеживаемых файлов в файловой системе требуется дополнительная работа, этот режим может занять некоторое время в большом рабочем дереве. Ты можешь использоватьno
иметьgit status
вернуться быстрее, не показывая неотслеживаемых файлов.Значение по умолчанию можно изменить с помощью
status.showUntrackedFiles
переменная конфигурации, задокументированная в git-config (1).