Как указано в документации , -x
принимает аргумент образца , поэтому он исключает только шаблоны.
Но Git только хранит файлы: «каталоги» или «папки» существуют только в воображении - и, увы, в реальности - операционной системы вашего компьютера, а не в Git. Git просто имеет файлы с именем foo/util/bar
или что-то еще. Но это нормально: если ваш компьютер настаивает на хранении файла с именем bar
в каталоге / папке с именем util
внутри каталога / папки с именем foo
, когда Git хранит файл с именем foo/util/bar
, шаблон */util/*
соответствует имени файла Git.
Обратите внимание, что -x
исключает только неотслеживаемых файлов, поэтому влияет только на git ls-files
вызовы, которые печатают имена файлов, найденных в рабочем дереве, а не те, которые печатают имена файлов, найденных в индексе. Файлы, хранящиеся в индексе, в буквальном смысле имеют длинные имена, которые могут содержать косую черту, например dir/sub/file.ext
: index не имеет возможности хранить каталоги / папки. (Это , почему Git не может хранить пустой каталог. Git создает новые коммиты из того, что находится в индексе, а индекс не хранит каталоги, поэтому Git не может создать коммит, содержащий пустой каталог.)