Typically, branches are used in development environments in which multiple teams contribute to a single application. You use branches to develop software in parallel in a version-controlled environment. For example, your teams can develop one feature in a branch while another team develops a feature in a different branch, even if they share the same base rulesets. After feature development completes, you can merge the changes you made for both features into the base ruleset. You can also use branches for providing bug fixes, because you can easily add them to applications.