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
Stashing Specific Files in Git
📖 Scenario: You are working on a project with multiple files changed. You want to temporarily save changes from only some files without committing them. This helps you switch tasks without losing work.
🎯 Goal: Learn how to stash changes from specific files using Git commands.
📋 What You'll Learn
Create a Git repository with three files: index.html, style.css, and script.js.
Modify all three files.
Stash changes only from style.css and script.js.
Verify the stash contains only those files.
Show the remaining unstashed changes.
💡 Why This Matters
🌍 Real World
Developers often need to save work temporarily on some files to switch tasks without committing unfinished changes.
💼 Career
Knowing how to stash specific files helps manage work efficiently in real projects and is a common skill in software development roles.
Progress0 / 4 steps
1
Create a Git repository and add files
Initialize a Git repository with three files named index.html, style.css, and script.js. Add some initial content to each file and commit them.
Git
Hint
Use git init to start the repo. Use echo to create files. Use git add and git commit to save.
2
Modify all three files
Modify the files index.html, style.css, and script.js by adding one new line of text to each.
Git
Hint
Use echo 'text' >> filename to add a line to each file.
3
Stash changes only from style.css and script.js
Use the Git stash command to stash changes only from the files style.css and script.js. Do not stash changes from index.html.
Git
Hint
Use git stash push followed by the file names to stash specific files.
4
Show the stash list and remaining unstashed changes
Run commands to show the list of stashes and then show the unstashed changes remaining in index.html.
Git
Hint
Use git stash list to see stashes and git diff to see unstashed changes.
Practice
(1/5)
1. What does the command git stash push -m "save changes" file.txt do?
easy
A. It saves changes only from file.txt to a new stash with a message.
B. It saves all changes in the working directory to a stash with a message.
C. It commits file.txt with the message "save changes".
D. It deletes file.txt and saves the rest to stash.
Solution
Step 1: Understand the git stash push command
This command saves changes in the working directory to a stash instead of committing.
Step 2: Recognize the effect of specifying a file
By adding file.txt, only changes in that file are saved to the stash, not all files.
Final Answer:
It saves changes only from file.txt to a new stash with a message. -> Option A
Quick Check:
Stash specific file = It saves changes only from file.txt to a new stash with a message. [OK]
Hint: Use git stash push with file names to stash specific files [OK]
Common Mistakes:
Thinking it stashes all files without specifying
Confusing stash with commit
Assuming it deletes files
2. Which of the following is the correct syntax to stash only -index.html and style.css files?
easy
A. git stash push -- -index.html style.css
B. git stash push -- files -index.html style.css
C. git stash push -index.html style.css
D. git stash push -f -index.html style.css
Solution
Step 1: Recall the syntax for stashing specific files
The correct syntax uses git stash push -- <files> to specify files.
Step 2: Identify the correct option
git stash push -- -index.html style.css uses -- before file names, which is required to separate options from file paths.
Final Answer:
git stash push -- -index.html style.css -> Option A
Quick Check:
Use -- before files to stash specific files [OK]
Hint: Always use -- before file names in stash command [OK]
Common Mistakes:
Omitting -- before file names
Using unsupported flags like -f
Adding extra words like 'files'
3. Given these changes: -file1.txt modified, file2.txt modified, file3.txt unchanged. What will be the output of git stash push -- -file1.txt followed by git stash list?
medium
A. Shows an error because multiple files are modified.
B. Shows a stash with -file1.txt and file2.txt changes saved.
C. Shows a stash with only -file1.txt changes saved.
D. Shows no stash because file2.txt is not included.
Solution
Step 1: Understand what git stash push -- -file1.txt does
This command saves only changes from -file1.txt to a new stash.
Step 2: Check the stash list output
After stashing, git stash list shows the new stash entry with only -file1.txt changes saved.
Final Answer:
Shows a stash with only -file1.txt changes saved. -> Option C
Quick Check:
Stash specific file = stash list shows that file only [OK]
Hint: Stash command saves only specified files, stash list shows saved entries [OK]
Common Mistakes:
Assuming all modified files are stashed
Expecting an error when multiple files are modified
Confusing stash list output with file contents
4. You run git stash push -file1.txt but get an error: error: unknown option '-file1.txt'. What is the likely cause?
medium
A. You used the wrong command; git stash save is required.
B. The file -file1.txt does not exist.
C. You need to commit changes before stashing.
D. You forgot to add -- before the file name.
Solution
Step 1: Analyze the error message
The error says unknown option '-file1.txt', meaning Git treats the file name as an option.
Step 2: Identify correct syntax for stashing specific files
You must use -- before file names to separate options from file paths.
Final Answer:
You forgot to add -- before the file name. -> Option D
Quick Check:
Missing -- causes unknown option error [OK]
Hint: Add -- before files to avoid option parsing errors [OK]
Common Mistakes:
Omitting -- before file names
Assuming file must be committed first
Using deprecated stash commands
5. You have modified -app.js, index.html, and style.css. You want to stash only -app.js and style.css, then later apply those changes back. Which sequence of commands correctly does this?
hard
A. git stash push -app.js style.css git stash apply