Take a look at https://github.com/git-ftp/git-ftp, I don’t have any experience with this tool myself but might be worth checking out. Don’t know if it supports submodules, though.
Also, as @Malvese mentioned, popular FTP clients usually come with sync features, if you are not on a Mac, have a look at the open source tool FileZilla or similar …
You might want to check out this thread as well Deploying via Git