My usual workflow with git is to create a new feature branch, do some work with frequent commits, and then merge back into the development branch when the feature is working
Nothing is really lost with git. The list of the commits on the feature branch can be obtained using:
git cherry feature-branch
Then simply pipe this to git cat-file:
git cherry feature-branch | cut -f2 -d' ' | git cat-file --batch
You need to clean-up the output though. I don't know a way to automated it better.