Lots of common sense stuff but also some useful tips…
- Do your dirty stuff inside your own fork.
- When you are on a feature branch, always rebase or pull –rebase.
- To make the history look more meaningful and modular, make use of git add -p and git rebase –i
- Never rebase any shared branch onto your feature branch and force push to any shared branch.