If I consider that all commits of the branch are good (well named, concerns correctly separated) then I use the Rebase and merge
option.
All commits are merge into develop
as is without creating a merge commit (they are put just after the last commit in develop
).
In the other hand, if there are "Work in progress" (WIP) commits in the branch, or if I consider that all commits refer to the same fix/feature and should be grouped, I use the Squash and merge
option.
All commits are grouped in one commit and put in develop
(still without creating a merge commit).
The commit will default take the name of the pull-request but you can change it if needed.