I find using subtrees much easier than submodules - http://blogs.atlassian.com/2013/05/alternatives-to-git-submo...
The command line is a little obscure (at least, I can never remember the command to pull the latest remote changes first time) but overall the use of them is a lot nicer, for the way I work at least. Being able to have "local" edits to subtrees while still allowing remote updating and colleagues to clone the repo with the local updates is rather useful.