git: list of all changed files including those in submodules

4eyes picture 4eyes · May 25, 2012 · Viewed 22.5k times · Source

I would like to get a list of all files, which have changed betweet two commits including those in submodules.

I know I can do this:

git diff --name-only --diff-filter=ACMR ${revision} HEAD

It returns a list of files, including the submodule-path, but not the files within.

Example: I've updated a submodule. I commited the super-project. Now I want to get a list of all files which have been modified.

Do you know a way to get this done?

Answer

VonC picture VonC · Oct 27, 2012

Update 2017: as I mentioned in "see diff of commit on submodule in gitlab",


Original 2012 answer (pre 2017 Git 2.14)

Maybe a simple line would be enough:

git submodule foreach --recursive git diff --name-status

That would actually list files in submodules within submodules.
(The --recursive option comes from git1.7.3+)