Your shell is interpreting the ^
symbol as a line continuation symbol. Either just avoid using ^
as Adamsuggests:
git reset --soft HEAD~1
or quote the argument so the shell doesn't attempt to interpret it (I'm not sure exactly which shell you're using, but I'd be surprised if this doesn't work):
git reset --soft "HEAD^"