Here are two different questions but I think they are related.
When using Git, how do I find which changes I have committed locally, but haven\'t yet pushed
When the "git log" and @{u} answers initially gave me "unknown revision" errors, I tried out Chris/romkyns suggestion of git push --dry-run.
You will get an output such as "5905..4878 master->master". 5905 is the latest commit that the remote has and commits through (and including) 4878 will be applied to the remote.
You can then use 5905..4878 as arguments to several other git commands to get more details:
git diff 5905..4878 # Gives full code changes in diff style
git log --online 5905..4878 # Displays each commit's comment