I have currently two branches: a development branch and a master branch.
The master branch (ideally) is populated with tagged commits that correspond to releases. One commit, one release, one tag.
The development branch, branches out from the latest release. I develop a new feature and merge back to master.
The problem is that when I do this, the master branch will now have all the commits I have in the development branch but ideally I want to keep the master branch clean and only release commits should be visible.
One solution I've found would be to "cherry-pick" the last commit of a development branch and placing it into master. But this seems to have downsides.
So in the master branch each commit will be cherry-picked from the development branch which will never merge with master.
1)Would this be the "best-practice" approach to keep a release branch clean with only tagged commits? Is there a way to solve this issue with "merge" or some other way? 2)Would merging the development branch would have advantages even though the master branch would not look too clean? (I could solve this with tags).