- Use Squash and Merge on Github, which uses rebase. Rebasing keeps history linear. Linear history is easy to read, understand, and makes operations easier (like reverts).
- Keep PRs small, merge early and often. Long running branches have to continually be rebased on a fast moving codebase.
- Avoid 3 levels of branching. 2 is ok, but can get confusing for yourself and reviewer.
$ git aliases