Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Using <code>git stash</code> to Save Changes
📖 Scenario: You are working on a project and have made some changes to files. Suddenly, you need to switch to another task without committing your current changes. You want to save your work temporarily without losing it.
🎯 Goal: Learn how to use git stash to save your current changes safely and then view the saved stash.
📋 What You'll Learn
Create a new file with some changes
Use git stash to save changes
List the saved stashes
💡 Why This Matters
🌍 Real World
Developers often need to pause work on one task and switch to another without committing incomplete changes. <code>git stash</code> helps save work safely.
💼 Career
Knowing how to use <code>git stash</code> is essential for managing work in progress and collaborating smoothly in software development teams.
Progress0 / 4 steps
1
Create a new file with changes
Create a new file called feature.txt and add the text New feature in progress to it. Then stage the file using git add feature.txt.
Git
Hint
Use echo to write text to the file and git add to stage it.
2
Save changes using git stash
Use the command git stash to save your current staged changes temporarily.
Git
Hint
Simply run git stash to save your changes.
3
List saved stashes
Use the command git stash list to see the list of saved stashes.
Git
Hint
Run git stash list to view saved stashes.
4
Show the output of git stash list
Run git stash list and observe the output showing your saved stash.
Git
Hint
The output should show a line starting with stash@{0}: indicating your saved changes.
Practice
(1/5)
1. What does the git stash command do?
easy
A. Commits your changes permanently to the repository
B. Deletes all your untracked files
C. Temporarily saves your uncommitted changes to switch tasks
D. Creates a new branch from the current state
Solution
Step 1: Understand the purpose of git stash
The command saves your current uncommitted changes temporarily without committing them.
Step 2: Compare with other git commands
Unlike commit, stash does not save changes permanently; it allows switching tasks without losing work.
Final Answer:
Temporarily saves your uncommitted changes to switch tasks -> Option C
Quick Check:
git stash = temporary save [OK]
Hint: Stash saves changes temporarily without committing [OK]
Common Mistakes:
Thinking stash commits changes permanently
Confusing stash with branch creation
Assuming stash deletes files
2. Which of the following is the correct command to save your current changes using git stash?
easy
A. git stash add
B. git stash save
C. git stash commit
D. git stash push
Solution
Step 1: Identify the modern git stash command
The recommended command to save changes is git stash push, which explicitly pushes changes to the stash.
Step 2: Eliminate incorrect options
git stash save is deprecated, git stash commit and git stash add are invalid commands.
Final Answer:
git stash push -> Option D
Quick Check:
Use git stash push to save changes [OK]
Hint: Use 'git stash push' to save changes safely [OK]
Common Mistakes:
Using deprecated 'git stash save'
Trying 'git stash commit' which doesn't exist
Confusing stash with add or commit commands
3. Given the following commands run in sequence:
git stash push -m "work in progress"
git stash list
git stash apply
What will be the output of git stash list?
medium
A. No stash entries found.
B. stash@{0}: On main: work in progress
C. Error: stash not found
D. stash@{1}: On main: work in progress
Solution
Step 1: Understand the effect of git stash push -m "work in progress"
This command saves current changes with the message "work in progress" as the latest stash entry.
Step 2: Check git stash list output
Since this is the first stash, it appears as stash@{0}: On main: work in progress.
Final Answer:
stash@{0}: On main: work in progress -> Option B
Quick Check:
First stash is stash@{0} with message [OK]
Hint: First stash is always stash@{0} in the list [OK]
Common Mistakes:
Expecting no stash entries after push
Confusing stash@{0} with stash@{1}
Assuming apply removes stash entry
4. You ran git stash push but accidentally included untracked files. Which command fixes this by stashing only tracked files?
medium
A. git stash push --keep-index
B. git stash push --only-tracked
C. git stash push --no-untracked
D. git stash push --include-untracked
Solution
Step 1: Understand the problem with untracked files
By default, git stash push does not stash untracked files unless specified.
Step 2: Identify the correct option to stash only tracked files
--keep-index stashes changes but keeps the index intact, effectively ignoring untracked files.
Final Answer:
git stash push --keep-index -> Option A
Quick Check:
Use --keep-index to stash only tracked files [OK]
Hint: Use --keep-index to exclude untracked files from stash [OK]
Common Mistakes:
Using --include-untracked adds untracked files instead of excluding
Assuming --no-untracked or --only-tracked are valid options
Confusing stash options with git add options
5. You have two stashes saved:
stash@{0}: On main: fix bug
stash@{1}: On main: add feature
You want to apply the older stash (add feature) but keep both stashes after applying. Which command should you use?
hard
A. git stash apply stash@{1}
B. git stash pop stash@{1}
C. git stash drop stash@{1}
D. git stash branch stash@{1}
Solution
Step 1: Understand difference between apply and pop
git stash apply applies the stash but keeps it saved; git stash pop applies and removes it.
Step 2: Choose command to apply older stash without removing it
Use git stash apply stash@{1} to apply the older stash and keep both stashes intact.
Final Answer:
git stash apply stash@{1} -> Option A
Quick Check:
Apply keeps stash, pop removes stash [OK]
Hint: Use 'git stash apply' to keep stash after applying [OK]