tags: #git --- ### Stashing your work - `git stash` - stash tracked files - `git stash -p` - partial stash (goes through each changed "hunk" in your working copy and ask whether you wish to stash it) - `git stash -u` - stash including untracked files (ex: new files that are not staged) - `git stash -a` - stash including ignored files (ex: .env files) - `git stash push -u -m "message"` - stash including untracked files with message ### Re-applying stashed changes - `git stash pop` - removes the changes from your stash and reapplies them to your working copy - `git stash apply` - reapply the changes to your working copy and keep them in your stash - This is useful if you want to apply the same stashed changes to multiple branches ### Managing multiple stashes - `git stash list` - list of all stashes - `git stash save "message"` - save stash with a name to identify at later time easily - ex: `git stash save "add style to our site"` - `git stash pop stash@{2}` - choose a stash index from pop list and apply ### Viewing stash diffs - `git stash show` - summary of a stash - `git stash show -p` - to view the full diff of a stash ### Creating a branch from stash - `git stash branch add-stylesheet stash@{1}` - This checks out a new branch based on the commit that you created your stash from, and then pops your stashed changes onto it. ### Cleaning up stash - `git stash drop stash@{1}` - drop stash with id stash@{1} - `git stash clear` - delete all your stashes --- sources: https://www.atlassian.com/git/tutorials/saving-changes/git-stash