Creating a branch from your stash If the changes on your branch diverge from the changes in your stash, you may run into conflicts when popping or applying your stash. Rather than save in a timestamped patch file, you might just let the git reflog save it for you in a custom ref e. Just look what comments get upvoted most. They can be used in bash as well. Your stash will appear on the graph. To learn more, see our. The first command will list untracked files and directories and the second command will delete them.
If you intend that your next commit should record all modifications of tracked files in the working tree and record all removals of files that have been removed from the working tree with rm as opposed to git rm , use git commit -a, as it will automatically notice and record all removals. Eventually old backup stashes will be pruned automatically. This option suppresses that output. As a good rule of thumb, if your stash is older than few hours and you may still need it in the future, you should create a branch from it. It removes changes from index. This allows removing all untracked files, including build products. The stash will now appear in the left panel and the graph with the desired name.
This document is an attempt to be a fairly comprehensive guide to recovering from what you did not mean to do when using git. Now that you know the basics of stashing, there is one caveat with git stash you need to be aware of: by default Git won't stash changes made to untracked or ignored files. Everyone must have a different expectation than me. As a result, people like me, who arrive at the question via Google searching for the answer to the titular question and don't particularly care for the actual details, up vote the person who actually answered it. When you're ready to continue where you left off, you can restore the saved state easily: git stash pop. You can make command shorter by omitting optional message and save command because it is assumed by default. If you create a new piece of code to solve an issue that first occurs on B but that you want on both A and B, you want to be able to stash the file on B so that when you recreate that file on A and then bring it over in a bundle, you can git diff the stashed version to verify that you didn't make a mistake.
Sometimes I have a situation that I am working on some feature on my own branch and suddenly someone comes to me and says that something really important has to be fixed or improved on the main branch. So in fact, you tried to create a stash which didn't work, see comments below apply a stash that didn't get created then drop a stash that didn't get created. Again see the docs for more information. This is intended to be useful for scripts. 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.
May, 2018 Imagine that you are working on a part of a project and it starts getting messy. This allows removing all untracked files, including build products. Stashing files Stash your changes by hitting the Stash icon in the top toolbar. However that will save the full index which may not be what you want since it might include other files already indexed , and a partial worktree which could look like the one you want to stash. The answer to this issue is the git stash command.
Use -f option twice if you really want to remove such a directory. Managing multiple stashes You aren't limited to a single stash. This step will be obsolete when recursive submodule update has been implemented. Next, click the checkbox to add all changes, then click stash to stash everything. Sometimes you may need to delete these untracked files from your code. I first of all selectively added my rest of the files and committed for staging. Stash List provides an overview of all the whole stash stack.
You can also use git clean or some variation in the answers below, including the interactive version to delete just selective files, but interactive mode can be tedious. So, if you want to delete files only, you can use -f only: git clean -f If you want to delete directories and files, you can delete only untracked directories and files like this: git clean -fd Also, you can use -x flag for including the files which are ignored by git. Stashing is handy if you need to quickly switch context and work on something else, but you're mid-way through a code change and aren't quite ready to commit. It is time to save your changes and switch branches. When --cached is given, the staged content has to match either the tip of the branch or the file on disk, allowing the file to be removed from just the index.
You can then re-apply the first stash, and discard the files that you wanted to stash. This will stash everything that you haven't previously added. So if you're having trouble with this - just make sure you're doing it from the repository root directory. BryanAsh Well, it's not like it matters here. This can be used possibly in conjunction with git reset to create a pristine working directory to test a clean build.