In a clone of a remote repository, start a branch to hold your code:
git-checkout -b my-changes
Do your work and commit changes as you like.
When you are happy with your work, create a temporary directory:
Then change back to the
master branch and build a set of patches from your branch with
git-checkout master git-format-patch -n master..my-changes -o /tmp/patches
A bunch of files, one per changeset, have been created in
/tmp/patches. Now, use the
git-send-email to send them, one per email, to the original author.
git-send-email --no-thread --from me@here --to author@remote /tmp/patches
If author@remote acknowledges your changes, you can just merge your changes to the current master head and delete your temporary branch:
git-merge my-changes git-branch -d my-changes
If author@remote uses
mutt, he can move to his working copy, call it and type
|git-am on each message.