Git submodules are supported by git-annex since version 5.20150303.

Git normally makes a .git file in a submodule, that points to the real git repository under .git/modules/. This presents problems for git-annex. So, when used in a submodule, git-annex will automatically replace the .git file with a symlink pointing at the git repository. (When the filesystem doesn't support symlinks, direct mode is used, and submodules are supported in that setup too.)

With that taken care of, git-annex should work ok in submodules. Although this is a new and somewhat experimental feature.

The conversion of .git file to .git symlink mostly won't bother git.

Known problems:

  • If you want to delete a whole submodule, git rm submodule will refuse to delete it, complaining that the submodule "uses a .git directory". Workaround: Use rm -rf to delete the tree, and then git commit.