I think this question is strongly related with this link.
In my actual job i merge with the master or in my case dev or prod branch when a bugfix or new feature is added. If i need to make some bugfixes or adding new features then the project manager decides when to merge to the final branch.
But i think a nice point of view is that only make the merge when the code of the commits don't broke the code of the app, and only making commits wiith full changes.