Posted By: Anonymous
I have changes to a file, plus a new file, and would like to use git stash to put them away while I switch to another task. But git stash by itself stashes only the changes to the existing file; the new file remains in my working tree, cluttering up my future work. How do I stash this untracked file?
To stash your working directory including untracked files (especially those that are in the .gitignore) then you probably want to use this cmd:
git stash --include-untracked
(Alternatively, you can use the shorthand
-u instead of
Update 17 May 2018:
New versions of git now have
git stash --all which stashes all files, including untracked and ignored files.
git stash --include-untracked no longer touches ignored files (tested on git 2.16.2).
Original answer below:
As of version 1.7.7 you can use
git stash --include-untracked or
git stash save -u to stash untracked files without staging them.
git add) the file and start tracking it. Then stash. Since the entire contents of the file are new, they will be stashed, and you can manipulate it as necessary.