Я предполагаю, что под «[они] являются частью хранилища» (в заголовке вашего вопроса) вы подразумеваете, что подкаталоги, которые вы хотите пропустить, на самом деле содержат отслеживаемые файлы и что вы хотите избежать git status
проверки состояния даже эти отслеживаемые файлы.
По умолчанию git status
проверит все отслеживаемые пути. У него нет опций для пропуска заданного списка путей, но он принимает pathspec аргументы, которые можно использовать для указания путей, которые он должен проверять (неявно, другие пути будут пропущены).
Чтобы напрямую использовать доступную доступную функциональность, вам нужно перевернуть проблему: Как показать состояние только определенных файлов и каталогов?
Ответ в том, что вы просто перечисляете их в командной строке. Например, если мы хотим знать только о src
, doc
(оба, вероятно, каталоги) и Makefile
:
git status src doc Makefile
Печатая это каждый раз, будет громоздко, поэтому вы, вероятно, захотите использовать сценарий оболочки и / или псевдоним Git.
Однако это хорошо работает, только если вы можете определить интересующий вас набор путей, не говоря что-то вроде «все, кроме X, Y и Z». Git не включает поддержку «все, кроме…» (пока 1 ), поэтому вам придется полагаться на что-то еще, чтобы расширить список и присвоить ему git status
. Некоторые оболочки имеют функции, которые могут помочь.
Пример: обработать все записи в текущем каталоге (включая «точечные» файлы / каталоги), если они не совпадают с .V
, .W
(т.е. шаблоны, начинающиеся с точки), X
, или Y
:
zsh с включенной опцией EXTENDED_GLOB (setopt EXTENDED_GLOB
),
git status ^(.V|.W|X|Y)(D)
Вы можете отключить (D)
, если у вас также включена GLOB_DOTS .
bash с включенными опциями dotglob и extglob (shopt -s extglob dotglob
):
git status !(.V|.W|X|Y)
ksh (шаблон для «точечных» имен немного странный из-за эмуляции GLOB_DOTS ):
git status .!(|.|V|W) !(X|Y)
И снова, вы, вероятно, захотите заключить их в скрипт (или псевдоним Git) вместо того, чтобы вводить их напрямую.
1
В рассылке Git обсуждалась добавленная поддержка «отрицательных» спецификаций пути («все, кроме…»), которые могли бы позволить вам сделать это без помощи оболочки, но пока нет твердого дизайна или открытого кода.