$ git submodule update libs/align fatal: reference is not a tree: d32353ea7d39c0237202e3e460f3248f226db274 Unable to checkout 'd32353ea7d39c0237202e3e460f3248f226db274' in submodule path 'libs/align' $ git submodule update tools/litre fatal: reference is not a tree: 564d4d8d30b7e03ac5e25d78e14d2c19fa321c83 Unable to checkout '564d4d8d30b7e03ac5e25d78e14d2c19fa321c83' in submodule path 'tools/litre' According to this: http://stackoverflow.com/questions/13425298/git-submodule-update-fatal-error... , this is most likely a maintainer's bug. From the above: "This is the most common problem with submodules. The commit that you are on in the outer repository has a reference to a commit in the submodule that someone did not push up yet. It's a dependency problem. Always push from the inside-out. This is most likely not something you did wrong, but someone else that's working in the repository. They were sloppy and forgot to issue push on the submodule and just pushed the containing repository. Stuff works on their machine because they made the change and those commits exist there." Is this true?