Somewhen (around the 1.6.x releases, I think) git became aware of changes inside submodules. That only serves to annoy me:
$ git status vendor | grep modified: #
There are two kinds of change notices you can suppress.
The first is untracked content
which happens when you make changes to your submodule but have not yet committed those. The parent repository notices these and git status
reports it accordingly:
modified: modules/media (untracked content)
You can suppress these with :
[submodule "modules/media"]
path = modules/media
url = git@github.com:user/media.git
ignore = dirty
However, once you commit those changes, the parent repository will once again take notice and report them accordingly:
modified: modules/media (new commits)
If you want to suppress these too, you need to ignore all
changes
[submodule "modules/media"]
path = modules/media
url = git@github.com:user/media.git
ignore = all
You need to add
ignore = dirty
to .gitmodules
I've answered this question here in greater detail.
Just run
git config --global diff.ignoreSubmodules dirty
to add a local config option to ignore those changes.