I remember when creating a new feature in a branch in my first week of work. Then I learned that it was much more easy this way. Otherwise we would need to rebase everytime from origin/dev.
One feature – one branch – (one commit)
So in some teams for each new feature, a new branch news to be created from dev(or masters), the feature is created and then the merge request is created.
This is quite simple and after the feature is merged, the branch is done. Create a new branch.
It’s very wise to squash for only one commit! yes, so the history is very clean! so nice. Sometimes I dont follow this though, I use two or three commits!