Как вы упомянули, подмодуль 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 ».