A 'merge commit' is the commit that ties together two strands.
* merge commit
|\
| * branch work
| |
| * branch work
|/
*
If you squash to merge, typically you're also going to rebase it (equivalently, if it's more familiar, cherry-pick the squash onto the branch your 'merging' it into).
* squash cherry-picked / rebased
| * both branch works squashed
| * | branch work
| | |
| * | branch work
|/_/
*
(In this case the target branch could have been fast-forwarded, but this also works if there's some other work on the mean time:)
* squash cherry-picked / rebased
|
* something unrelated
| * both branch works squashed
| * | branch work
| | |
| * | branch work
|/_/
*