i'm not sure if my answer is ideal or not, but the way i did is using
git rebase -i --root
after that, squash the second commit to the first commit. also don't forget to pick the 3rd commit. by edit the interactive rebase prompt in your console,
pick 3609c82 commit 1
squash 21d643a commit 2
pick 0ce4e9c commit 3
# Rebase 3da6375 onto db86c06 (3 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
save then exit,..
if there any conflict happen you can resolve and do "git rebase --continue". or you can also abort the rebase using "git rebase --abort"
you also can rename the the commit by using amend.
remember, always do backup before you changed any history like rebase squash or amend. because from what i understand, it is not revert/reset able. that's why i said, maybe this is not ideal, but that is what i did and it worked.
have a nice day!