This is what git stash create is for. It creates a stash commit and outputs the hash, but it does not add the commit either to the branch or the stash list. (It has no option to include untracked files. The stash commit will eventually be garbage-collected, assuming you don't create a reference to it later.)