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
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.