This applies to Git in general, not just with SourceTree. When you stash changes, the items that will be stashed are the changes to tracked files in your working copy and in the staging area. Those changes will be saved in the stash, and reverted in the working copy and index.
When you choose to keep changes in the index/staging area, those changes will still be stashed, but Git won't also revert them in the staging area. This is useful if, for example, you make several unrelated changes, and you want to run tests only some of those changes, without having the unrelated ones affect the test.
Stashing is safe. If you want to get your stashed changes back, you just pop them back out of the stash.
However, untracked files aren't normally stashed. If you want to also stash those files, you need to pass an additional option to git stash
on the command line (SourceTree for Windows doesn't currently have such an option. I don't know if the same is true for the Mac version):
git stash save --include-untracked
# Or shorter
git stash save -u
git stash
.Yes, but stashing in this case would mean two scenarios -
Checking the Keep staged changes: staged files would still be in your staging area, but all your modified unsaved files will be stashed.
Without checking the staged changes: all your files will be stashed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With