The management of branches is used to manage several versions of the same application in parallel.
The most common case is as follows: You have deployed a version of your application and you are working on the next version of this application. Meanwhile, you would like to apply the bug fixes performed in the current version to the deployed version, and therefore create and deploy intermediate versions.
Another example: The branches can also be used to manage specific versions for each client. Each branch corresponds to a client version. As soon as the base project (common trunk) is modified, all you have to do is apply the modifications into each one of the branches.
The branches are used to distribute patch versions of the application to customers without any effort: no need to code the same things twice.
The risk of errors due to "manual reporting" disappears.
The comfort increases, the security increases, the hurdles to availability of bug corrections disappear...
Note: The branch modifications are bi-directional. The modifications can be applied from the main project to the branch or from the branch to the main project. The modified project is always the project that is opened. In the rest of this document, the example applies a modification from the main project to the branch.