I would like to contribute to a certain project in GitHub. Should I fork it? Branch it? What is recommended and how to do it?
Ideally you:
if it is a new Feature request, don't start the coding first. Remember to post an issue to discuss the new feature.
If the feature is well discuss and there are some +1 or the project owner approved it, assign the issue to yourself, then do the steps above.
Some projects won't use the pull request system. Check with the author or mailing list on the best way to get your code back into the project.