atomic contribution to the collective codebase. This implies that it should contain a complete feature or bug-fix. The commit should not break any part of the codebase (i.e. should pass all tests) 2
the minimum code changes that’s required for the feature or bug-fix to complete. You then stage the changes and commit them. If you want further features you repeat the process. 3
describing the intention of the commit. E.g.: This fixes #33, the facebook login button bug. It should always be in present time. And you should always keep your messages below 50 characters. 5
help you keep a tidy Github. They have simple hooks to close issues such as: fixes and closes. So a commit message like: This closes #87 will close issue number 87 in the issue tracker. 6