Как вы упомянули, подмодуль patch git: игнорировать грязные подмодули для сводки и статуса находится в стадии разработки.
Также объявлено в выпуске Git 1.7.2-rc2 :
Git v1.7.2 Release Notes (draft)
================================
Updates since v1.7.1
--------------------
« git status» Научились « --ignore-submodules» вариант.
Смысл:
git config --global diff.ignoreSubmodules dirty
Относительно этого варианта сейчас не совсем тот подход :
После этой серии я планирую добавить параметр конфигурации ' ignore' .gitmodules, который может быть установлен для каждого подмодуля на "все", "грязный", "неотслеживаемый" или "нет" (по умолчанию).
" git diff" и " git status" будут использовать это значение конфигурации для каждого подмодуля.
Использование " --ignore-submodule" отменяет это значение по умолчанию (и новый параметр "none" будет добавлен туда, чтобы иметь возможность переопределить настройки конфигурации).
И чтобы не делать " git submdule sync" каждый раз, когда эта опция изменяется, я хотел бы .git/configсначала искать ее .
Если его там нет, то он будет взят .gitmodules, если он есть.
Таким образом, пользователи могут переопределить настройку, но если они этого не сделают, восходящий поток может легко изменить ее (например, когда подмодули .gitignoreбыли обновлены так, что " ignore=untracked" больше не требуется, его можно удалить).
Также переключение ветвей будет иметь эффект мгновенно, если ignoreзапись в .gitmodulesразных ветвях будет разной.
Другой подход, позволяющий сделать git status (или любую команду git) игнорированием определенного подмодуля, доступен в Git 2.13 (второй квартал 2017 г.):
git config submodule.<name>.active false
См. Больше в « Игнорировать новые коммиты для подмодуля git ».