Let's say I have a Git repo R that has a subdirectory that is a submodule repo, SR.
On machine A I make changes to SR. I commit/push them. If I move up to the parent directory, git status will show that there are local changes. This (so far as I'm aware) is because the gitlink has been updated because the subrepo changed, and this needs to be committed and checked in. So I carry out the commit and push.
On machine B I go to the SR directory and execute a git pull. I then go to the enclosing folder in repo R (also on machine B) and execute a git pull.
Despite having made no local changes on machine B, git status will report that the subrepo has (new commits), i.e. it seems to expect me to commit these new changes. But why? For whose benefit are these "changes"? I can get my head around the idea of the changes to SR constituting a change for R. But if I've pulled both on B, why am I not 100% up to date, and why do I apparently have my own local changes that need to be committed?