In bitbucket merging a pull request offers different strategies (Merge strategy), which are:
# Merge commit
git merge --no-ff
# Squash
git merge --squash
# Fast forward
git merge --f-f-only
I've only used the first one, which comes by default.
What are the consequences of using each of them? In what situations is each appropriate?