I'm using Source Tree as Git GUI of choice. I'm trying to implement git-flow system, meaning that most of the commits will be done in feature branches. As you can see on this image, creating feature branches, pushing commits and merging them back to dev branch works fine.
The problem is: if I am to squash my commits into one (either via Source Tree or regular git commands), finishing the feature makes it appear as if the commits were done on the dev branch.
Here is an example screenshot - the red branch is test feature that wasn't squashed, while "Squashed commit" and "commit 1" are commits that were squashed and merged same way as the previous branch was. The "merge" commits weren't included in squash, but nevertheless they are gone. I am yet to understand if that's how they are supposed to be displayed or I'm actually rebasing those changes onto dev branch somehow. Any help or advice is appreciated.
UPDATE
To no avail, after a series of experiments I am still encountering the problem - squashing commits via git rebase -i HEAD~amount_of_commits causes a discrepancy in either Source Tree or git itself. Using the "finish feature" button, which issues following commands:
git checkout develop
git merge feature_branch
or performing the same commands manually via git console results in a situation where after a git merge a "Merge branch feature/feature_branch into dev" commit is not created. The squashed commit is displayed as part of dev branch and it has the "dev" tag in Source Tree GUI. At first I thought because maybe that's how it displays branches with just one commit, but no, creating a feature branch and merging it after just one commit provides correct output. Perhaps using a different merge command might fix the situation, but I'm worried as to why Source Tree would work like this then. I still believe the issue if my git rebase command and there is a mistake in how I perform it. Any help is appreciated.