I want to add to the accepted solution another good way to go through all the changes, when you either don't have gitk available or no X for output.
git fsck --no-reflog | awk '/dangling commit/ {print $3}'> tmp_commitsfor h in `cat tmp_commits`; do git show $h | less; done
Then you get all the diffs for those hashes displayed one after another. Press 'q' to get to the next diff.