📦 Git Stash = Temporary Storage
Need to switch branches? Git stash saves work temporarily. Stash, switch, unstash.
📝 Stash Commands
# Save changes to stash
git stash
# Save with message
git stash save "WIP: working on feature X"
# Stash untracked files
git stash -u
git stash --include-untracked
# List all stashes
git stash list
# Apply stash (keep in stash)
git stash apply
git stash apply stash@{0}
# Apply and remove from stash
git stash pop
git stash pop stash@{0}
# Remove stash (drop)
git stash drop
git stash drop stash@{0}
# Clear all stashes
git stash clear
# Show stash diff
git stash show
git stash show -p
🎯 Common Workflow
# 1. Work on feature branch
git checkout feature-branch
# ... make changes ...
# 2. Need to switch to main (critical bug fix)
git stash save "WIP: feature in progress"
git checkout main
# ... fix bug ...
git commit -m "Fix critical bug"
git push
# 3. Return to feature branch
git checkout feature-branch
git stash pop
# Continue work
# Multiple stashes
git stash save "Feature A - UI changes"
git stash save "Feature B - API changes"
git stash list
# stash@{0}: Feature B
# stash@{1}: Feature A
# Apply specific stash
git stash apply stash@{1}
# Stash Tips
- Use descriptive messages for stashes
- Check stash list before popping
- Clean up old stashes periodically
- Use stash to test with clean state
- Stash untracked files with -u
💡 Stash Tips
- Use descriptive messages for stashes
- Check stash list before popping
- Clean up old stashes periodically
- Use stash to test with clean state
- Stash untracked files with -u
“Git stash saves work temporarily. Switch branches, fix bugs, return. Essential for Git workflow.”
