Sure,
git checkout -b tmp
touch whatever.txt
git add -A
git commit -m "committed!"
git checkout master
git branch -D tmp
The commit whose predecessor is the current HEAD of master is now still available, but no name is pointing to it. You can still get to it e.g. with the reflog commands.
Another possibility, given that C already exists:
git checkout -b tmp
git checkout master
git reset --hard HEAD~1
git branch -D tmp