Edit: updated to match additional information given in comments below
Edit 2: add tagging recommendations
Goal: merge hotfix into version 1.0
First, let's rephrase your original picture.
A---B---C---D // master
\
E---F---G // hotfix
Assuming this is how history currently looks
C---D // master (2.0)
/
A---B // current version 1.0
\
E---F---G // hotfix
I'd recommend creating a branch to track version 1
git checkout -b release/v1 <B's commit SHA>
And create a tag to mark what has actually been shipped
git tag v1.0.0
Then merge the hotfix into this new branch
git merge hotfix
And create a tag to mark the new version and release that to where ever it's needed
git tag v1.0.1
Your history will now look like this
C---D // master (2.0)
/
A---B // tag v1.0.0
\
E---F---G // branch release/v1 and tag v1.0.1
Finally, it sounds like you don't need the hotfix changes in version 2.0, but if you do:
git checkout master
git merge hotfix
Original answer
It's not possible to "merge" the hotfix branch into master and get the history to look the way you want. However, it is possible if you're willing to rewrite the master branch. Warning: this will cause major pain for anyone else working off of the master branch and should be avoided.
Given
A---B---C---D // master
\
E---F---G // hotfix
You can get the desired history with
git checkout master
git rebase hotfix/foo
This will result in
A---B---E---F---G---C'---D' // master
\
C---D // original master