Bird
Raised Fist0
Gitdevops~5 mins

Working directory state in Git - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is the working directory in Git?
The working directory is the folder on your computer where you edit and create files. It shows the current state of your project files before you save changes to Git.
Click to reveal answer
beginner
What does it mean if a file is modified in the working directory?
A modified file means you changed it in your working directory but have not yet saved those changes to Git with a commit.
Click to reveal answer
beginner
How can you see the state of your working directory in Git?
Use the command git status. It shows which files are modified, staged, or untracked in your working directory.
Click to reveal answer
intermediate
What is the difference between the working directory and the staging area?
The working directory is where you edit files. The staging area is where you prepare files to be saved in the next commit.
Click to reveal answer
intermediate
What happens if you run git checkout -- <file> on a modified file in the working directory?
It discards changes in the working directory for that file, restoring it to the last committed version.
Click to reveal answer
What does the working directory in Git represent?
AThe remote repository on GitHub
BThe saved commit history
CThe list of branches
DThe current files you are editing on your computer
Which command shows the state of your working directory?
Agit status
Bgit commit
Cgit push
Dgit branch
If a file is modified in the working directory, what does that mean?
AThe file is unchanged
BThe file has changes not yet saved to Git
CThe file is deleted from the project
DThe file is staged for commit
What does the command git checkout -- <file> do to a modified file?
ASaves changes to the remote repository
BAdds the file to the staging area
CDiscards changes and restores the last committed version
DDeletes the file permanently
Which area holds files you want to include in the next commit?
AStaging area
BWorking directory
CRemote repository
DCommit history
Explain the role of the working directory in Git and how it relates to the staging area and commits.
Think about the flow of changes from editing to saving in Git.
You got /3 concepts.
    Describe how you can check the state of your working directory and what information you get from it.
    This command helps you know what files need attention.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the git status command show you about your working directory?
      easy
      A. It shows which files are new, modified, or staged for commit.
      B. It deletes all untracked files from the directory.
      C. It permanently commits all changes to the repository.
      D. It resets the repository to the last commit.

      Solution

      1. Step 1: Understand the purpose of git status

        This command checks the current state of the working directory and staging area.
      2. Step 2: Identify what git status reports

        It lists new files, modified files, and files staged for commit, helping you track changes.
      3. Final Answer:

        It shows which files are new, modified, or staged for commit. -> Option A
      4. Quick Check:

        Working directory changes = git status output [OK]
      Hint: Remember: git status shows current file changes and staging [OK]
      Common Mistakes:
      • Confusing git status with git commit
      • Thinking git status deletes files
      • Assuming git status changes files automatically
      2. Which of the following commands correctly stages a file named app.js for commit?
      easy
      A. git commit app.js
      B. git status app.js
      C. git add app.js
      D. git push app.js

      Solution

      1. Step 1: Identify the command to stage files

        The git add command is used to add files to the staging area.
      2. Step 2: Confirm the correct syntax for staging a specific file

        Using git add app.js stages the file named app.js for the next commit.
      3. Final Answer:

        git add app.js -> Option C
      4. Quick Check:

        Stage files = git add [OK]
      Hint: Use git add to stage files before committing [OK]
      Common Mistakes:
      • Using git commit to stage files
      • Trying to use git status to stage
      • Using git push before commit
      3. Given the following sequence of commands, what will git status show about index.html?
      echo 'Hello' > index.html
      git add index.html
      echo 'World' >> index.html
      git status
      medium
      A. index.html is staged and has unstaged changes.
      B. index.html is deleted.
      C. index.html is untracked.
      D. index.html is staged and unchanged.

      Solution

      1. Step 1: Analyze the commands on index.html

        First, 'Hello' is written and the file is staged with git add. Then 'World' is appended, modifying the file after staging.
      2. Step 2: Understand git status output

        Git will show index.html as staged (with 'Hello') but also as modified (unstaged changes with 'World').
      3. Final Answer:

        index.html is staged and has unstaged changes. -> Option A
      4. Quick Check:

        Modified after staging = staged + unstaged changes [OK]
      Hint: Changes after git add show as unstaged modifications [OK]
      Common Mistakes:
      • Assuming staging updates automatically after file change
      • Thinking file is untracked after git add
      • Confusing staged with committed
      4. You ran git add README.md but git status still shows README.md under 'Changes not staged for commit'. What is the likely cause?
      medium
      A. README.md is ignored by .gitignore.
      B. You modified README.md after running git add.
      C. You committed README.md already.
      D. README.md is deleted from the working directory.

      Solution

      1. Step 1: Understand git add and file modification

        Running git add stages the current file state. If the file changes after, those changes are unstaged.
      2. Step 2: Interpret git status showing unstaged changes

        If README.md appears under 'Changes not staged for commit', it means it was modified after staging.
      3. Final Answer:

        You modified README.md after running git add. -> Option B
      4. Quick Check:

        Modify after add = unstaged changes shown [OK]
      Hint: Modify after git add causes unstaged changes [OK]
      Common Mistakes:
      • Assuming git add stages future changes automatically
      • Thinking .gitignore affects already tracked files
      • Confusing committed files with staged files
      5. You want to prepare a commit but accidentally staged a large file secret.txt. How can you remove it from the staging area without deleting the file from your working directory?
      hard
      A. git checkout secret.txt
      B. git rm secret.txt
      C. git clean secret.txt
      D. git reset secret.txt

      Solution

      1. Step 1: Understand the difference between unstaging and deleting

        To remove a file from staging but keep it in the working directory, you must unstage it.
      2. Step 2: Identify the correct command to unstage a file

        git reset secret.txt removes the file from the staging area without deleting it from disk.
      3. Final Answer:

        git reset secret.txt -> Option D
      4. Quick Check:

        Unstage file = git reset filename [OK]
      Hint: Use git reset to unstage files without deleting [OK]
      Common Mistakes:
      • Using git rm deletes the file from disk
      • Using git checkout resets file content, not staging
      • Using git clean deletes untracked files