try out new ideas, you're free to experiment and commit changes • Don't affect the master branch • Anything in the master (production) branch is always deployable • Use descriptive branch name, e.g. refactor- authentication, user-content-cache-key
understand what you've done and why • Clear commit message help explaining why a particular change was made • Separate unit of change • Allow roll back changes if a bug is found, or if you decide to head in a different direction
• You're ready for someone to review your work • Using @mention • Start code review and conversation about proposed changes before they're merged into the master branch
your changes may have questions or comments • Designed to encourage and capture this type of conversation • Continue to push to your branch in light of discussion and feedback about your commits
around one task or one fix • Code Reviews are Easier • Easier to Roll Back • Commit message, One line description with issue reference < 50 char • More detailed explanatory text, if necessary