Fork me on GitHub

Git branch design lesson

Git can do everything but what is a good idea to do and what are bad ideas?

Many good tutorials exist that explain what is possible with Git. This lesson does not focus on what is possible with branches, but rather what strategies are advisable to simplify collaboration and code maintenance.


  1. Basic understanding of Git.
  2. We build on top of Introduction to version control with Git.


10 min Rebase vs. merge What is the advantage of merging?
What is the advantage of rebasing?
10 min Branch hygiene Why is the Git log history important?
15 min Git rebase and commit squashing exercise How can we commit often and still arrive at an understandable history?
20 min Avoiding conflicts How should we organize branches to avoid conflicts?
15 min Branching models What is a good branch layout to simplify maintenance and release preparation?