It all depends on how you want to work, but there is food for thought:
Way of work I prefer to have a connecting line and a release branch. Changes are made to the trunk and merged into the release branch as needed.
If you pass logical units of work to the trunk, you have a good basis for cherry to select specific versions (and, therefore, functions) in the release branch, and you also got a good history of your project in your trunk history. If you do everything because it is Friday afternoon, it can be difficult to allocate a coherent set of functions for your release branch (if you have one), and it is very difficult to write good commit comments.
But you need to balance this, often obliging you to protect your work and extract value from your working copy. Unstable development branches are ideal for this. Branches can be short-lived and integrated into the trunk at logical / functional points. They will not fine if you do it simply because it is 20 minutes from the moment of the last transaction, and the story with the branch is likely to be quite simple, and you will not care about individual details.
However, this only makes sense if you have a rather complicated development environment — if you’re unlikely to make certain changes since the release or manage multiple versions of the project at the same time, it may not be worth it.
Jim t source share