By default, git stash
only stashes modified and staged tracked files. If you wish to stash untracked files as well, depending on your requirements, you could use any one of the following:
Stashing Only Tracked and Untracked Files
By simply appending --include-untracked
(or -u
shorthand) to git stash
command you can include all tracked and untracked files:
git stash --include-untracked git stash -u
Note, however, that this will exclude explicitly ignored files (as defined in .gitignore
). To stash ignored files as well, see how you can stash all files or use git add
instead.
Stashing Untracked Files Using git add
You could simply git add
the untracked files to start tracking it, followed by git stash
to stash all tracked files like so:
git add path/to/untracked-file git stash
By default, git add
will exclude explicitly ignored files (as defined in .gitignore
). You can, however, force git add
on ignored files.
Stashing Ignored Files Using git add
You can use the --force
(or -f
shorthand) flag to allow adding ignored files like so:
git add --force path/to/ignored-file git add -f path/to/ignored-file
Then to stash them you can do git stash
right after, like so:
git stash
Stashing All Files (Tracked, Untracked and Ignored)
You can stash all files (which will include tracked, untracked and ignored files) by using the --all
(or -a
shorthand) flag like so:
git stash --all git stash -a
Checking If File Is Being Ignored
A pattern within your .gitignore
might sometimes be causing a file to be ignored when you're trying to git stash
. In such cases, you can use the following code to verify and debug which pattern is causing the file to be ignored:
git check-ignore -v path/to/file
It is possible to pass multiple file names to git check-ignore
.
Hope you found this post useful. It was published . Please show your love and support by sharing this post.