The commands to create and switch branches allow you to fork the project into independent development lines. You can create branches, for example, to start new features in your application or to implement fixes. Sooner or later you will finish a feature or a fix and then in all probability, you will want to incorporate your efforts into the main line of development. The process of joining separate branches can be done using two different techniques. The first one is realized with the $ git merge command. It is the subject of this chapter. The second is done with the $ git rebase command. We will postpone this as it is the subject of the next chapter.