Contributing to open-source is analogous to using someone’s home. You don’t want to come in and make a mess of the place. Similarly, you don’t want to muddle a concise and well-maintained commit history with uninformative and messy commits. The following provides strategies for maintaining a clean, hygienic commit history, so that your code and your pull requests are professional.
WIP is not a suitable commit message. That goes for duplicate messages as you troubleshoot an issue as well. Your commit message or messages should be cohesive and informational. For example,
<issue> - <issue description> - Added exception handling in function 'foo'
Here, issue can correspond to the GitHub issue number. Alternatively, issue can be an issue type (e.g.
You should not submit a pull request with more than one commit unless each commit contains a logical grouping of changes. A pull request should be an atomic package of work that can be summarized by a single commit message. If you commit often during development, use:
$ git rebase -i <commit-SHA>
Don’t Merge Master
Do not merge master into a branch in order to integrate upstream changes. Instead, use
git rebase. Given that your local reference is up-to-date with upstream remotes, executing
git rebase master will integrate upstream changes and place your commits on top.