How to rearrange and squash commits
OP: I would like to know if there's a possibility to squash commits and merge them by the user
In order to achieve what you are asking for, the easiest approach I'd say would be to do an interactive rebase, e.g.
$ git rebase master feature-1 --interactive
See the illustration below for a detailed explanation.

Step by step
(1) Select which two branches to involve in the rebase (don't forget the --intertactive
flag as it will allow you to rearrange your commits)
(2.1) Re-order your commits in the desired order (note that the commits are displayed in reversed order)
(2.1) Edit the action infront of the commits to squash from pick
to squash
or fixup
(depending on if you'd like to edit the commit message or not)
(3) Save and close the file and watch Git work its magic
Important
As rebase
rewrites your history, make sure to take a backup of your branch first. That way you're also able to easily compare the before and after state of the two branches.
Further more, re-arranging commits assumes that the intertwined developers have been working on the same files as this could potentially cause conflicts while rebasing.