Susam Pal has an excellent write-up on how to fork a project, make some contribution to it, and generate a pull request for the upstream developer. That’s really handy because many times a user will find a problem and generate a solution locally but not be sure how to let the original developer know through the usual GitHub mechanisms. This can result in the contribution being lost to the wider user community.

Pal’s document doesn’t assume you’re using Magit so he does everything through raw Git commands but there’s nothing difficult or esoteric in those commands so it should be easy to do duplicate his workflow in Magit.

He starts with a quick reference sheet that shows the whole process but then explains each step in detail (including branch diagrams) so that someone unfamiliar with the process can understand what’s going on. He also looks at the workflow from the original developer’s point of view and shows how to merge a pull request into the main development branch.

If you’re a regular contributor to GitHub projects, all this will already be familiar to you. If you’re an infrequent contributor or n00b, this guide is just what you need to help you step through the process. It’s probably a good idea to bookmark the site so you can refer to it as needed.