I know HEAD currently points to the latest commit in current branch.
I have seen many online blogs some of them are using
git reset --soft HEAD~1 and
git reset --soft HEAD^1 to reset the codebase
I checked ~ and ^ has no difference. Please help me understand why git support ^ and ~ if they are same