Bird
Raised Fist0
Gitdevops~10 mins

Stashing specific files in Git - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the command to stash only the file named app.py.

Git
git stash push [1]
Drag options to blanks, or click blank then click option'
A--include-untracked
B-- app.py
C--all
D--patch
Attempts:
3 left
💡 Hint
Common Mistakes
Using options like --all or --include-untracked which stash more than just the file.
Not using -- before the filename.
2fill in blank
medium

Complete the command to stash changes only in index.html and style.css.

Git
git stash push [1]
Drag options to blanks, or click blank then click option'
A--patch
B--all
C-- index.html style.css
D--include-untracked
Attempts:
3 left
💡 Hint
Common Mistakes
Using options like --all which stash everything.
Not listing both files after --.
3fill in blank
hard

Fix the error in the command to stash only README.md.

Git
git stash push [1] README.md
Drag options to blanks, or click blank then click option'
A--
B--all
C--patch
D--include-untracked
Attempts:
3 left
💡 Hint
Common Mistakes
Using options like --all or --patch which stash more than the file.
Omitting the -- before the file name.
4fill in blank
hard

Fill both blanks to stash only main.js.

Git
git stash push [1] [2]
Drag options to blanks, or click blank then click option'
A--
B--all
Cmain.js
Dutils.js
Attempts:
3 left
💡 Hint
Common Mistakes
Using --all which stashes everything.
Not using -- before file names.
5fill in blank
hard

Fill all three blanks to stash only server.js and config.json.

Git
git stash push [1] [2] [3]
Drag options to blanks, or click blank then click option'
A--
Bserver.js
Cconfig.json
DREADME.md
Attempts:
3 left
💡 Hint
Common Mistakes
Not using -- before file names.
Including options like --all which stash everything.

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

  1. Step 1: Understand the git stash push command

    This command saves changes in the working directory to a stash instead of committing.
  2. 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.
  3. Final Answer:

    It saves changes only from file.txt to a new stash with a message. -> Option A
  4. 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

  1. Step 1: Recall the syntax for stashing specific files

    The correct syntax uses git stash push -- <files> to specify files.
  2. 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.
  3. Final Answer:

    git stash push -- -index.html style.css -> Option A
  4. 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

  1. Step 1: Understand what git stash push -- -file1.txt does

    This command saves only changes from -file1.txt to a new stash.
  2. Step 2: Check the stash list output

    After stashing, git stash list shows the new stash entry with only -file1.txt changes saved.
  3. Final Answer:

    Shows a stash with only -file1.txt changes saved. -> Option C
  4. 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

  1. Step 1: Analyze the error message

    The error says unknown option '-file1.txt', meaning Git treats the file name as an option.
  2. Step 2: Identify correct syntax for stashing specific files

    You must use -- before file names to separate options from file paths.
  3. Final Answer:

    You forgot to add -- before the file name. -> Option D
  4. 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
B. git stash push -m "partial stash" -- -app.js style.css
git stash apply stash@{0}
C. git stash save -app.js style.css
git stash pop
D. git stash push -app.js style.css
git stash pop stash@{1}

Solution

  1. Step 1: Stash specific files with a message

    Use git stash push -m "partial stash" -- -app.js style.css to stash only selected files with a label.
  2. Step 2: Apply the correct stash entry

    Use git stash apply stash@{0} to apply the most recent stash explicitly.
  3. Final Answer:

    git stash push -m "partial stash" -- -app.js style.css
    git stash apply stash@{0}
    -> Option B
  4. Quick Check:

    Use -m and -- with files, then apply stash by name [OK]
Hint: Use -m for message and -- before files, then apply stash by reference [OK]
Common Mistakes:
  • Using deprecated git stash save
  • Omitting -- before file names
  • Applying stash without specifying correct stash reference