Preserve blame in squash merge

I like to create a lot of small commits while working on a feature branch for every sub-items. So I usually choose to squash them while creating a merge request to keep a smaller history.

However, I observed that this leads to loss of the intermediate commits. If I see the blame, every change shows the squashing commit and not of the original one. And also, if it is merged by someone else, the author of these lines vet changed to that person.

I’d prefer to have this. When the squashing merge happens, the target branch will get just one more commit. However, blame will be as it is with non-squashing merge.

Is there a way to achieve this?