Bird
Raised Fist0
Gitdevops~20 mins

git cat-file to inspect objects - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Git Cat-File Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
1:30remaining
Inspecting a commit object with git cat-file
You have a commit hash abc1234. What is the output type when you run git cat-file -t abc1234?
Git
git cat-file -t abc1234
Acommit
Bblob
Ctree
Dtag
Attempts:
2 left
💡 Hint
The -t option shows the type of the object.
💻 Command Output
intermediate
1:30remaining
Viewing the content of a blob object
You want to see the content of a file stored as a blob object with hash def5678. Which command shows the file content?
Git
git cat-file -p def5678
Agit cat-file -s def5678
Bgit cat-file -t def5678
Cgit cat-file -p def5678
Dgit cat-file -e def5678
Attempts:
2 left
💡 Hint
The -p option pretty-prints the object content.
❓ Troubleshoot
advanced
2:00remaining
Error when inspecting a non-existent object
You run git cat-file -p 1234567 but get the error: fatal: Not a valid object name 1234567. What is the most likely cause?
Git
git cat-file -p 1234567
AThe repository is corrupted and cannot read objects
BYou used the wrong option; -p is invalid
CYou need to run git fetch before using git cat-file
DThe object hash 1234567 does not exist in the repository
Attempts:
2 left
💡 Hint
Check if the hash exists in the repo.
🧠 Conceptual
advanced
1:30remaining
Understanding git cat-file -s output
What does the command git cat-file -s 9a8b7c6 output?
Git
git cat-file -s 9a8b7c6
AThe type of the object identified by 9a8b7c6
BThe size in bytes of the object identified by 9a8b7c6
CThe content of the object identified by 9a8b7c6
DThe commit message of the commit object 9a8b7c6
Attempts:
2 left
💡 Hint
The -s option shows size.
✅ Best Practice
expert
2:30remaining
Using git cat-file in a script to check object type
You want a script to check if a given hash is a tree object. Which command correctly returns true if the object is a tree, and false otherwise?
Atest "$(git cat-file -t $HASH)" = "tree" && echo true || echo false
Bif git cat-file -p $HASH | grep -q tree; then echo true; else echo false; fi
Cgit cat-file -s $HASH | grep tree && echo true || echo false
Dgit cat-file -e $HASH && echo true || echo false
Attempts:
2 left
💡 Hint
Use -t to get the object type exactly.

Practice

(1/5)
1. What does the command git cat-file -t <object> display?
easy
A. The type of the Git object (e.g., commit, tree, blob)
B. The size of the Git object in bytes
C. The content of the Git object
D. The commit message of the latest commit

Solution

  1. Step 1: Understand the -t option and differentiate from others

    The -t flag in git cat-file shows the type of the object, such as commit, tree, or blob. The -s option shows size, and -p shows content.
  2. Final Answer:

    The type of the Git object (e.g., commit, tree, blob) -> Option A
  3. Quick Check:

    -t shows type = A [OK]
Hint: Use -t to see object type quickly [OK]
Common Mistakes:
  • Confusing -t with -s or -p options
  • Expecting content instead of type
  • Thinking it shows commit messages
2. Which of the following is the correct syntax to display the content of a Git object using git cat-file?
easy
A. git cat-file -p <object>
B. git cat-file -s <object>
C. git cat-file -t <object>
D. git cat-file --show-content <object>

Solution

  1. Step 1: Identify the option for content display and verify others

    The -p option in git cat-file prints the content of the object in a human-readable form. -s shows size, -t shows type, and --show-content is not a valid option.
  2. Final Answer:

    git cat-file -p <object> -> Option A
  3. Quick Check:

    -p shows content = A [OK]
Hint: Use -p to print object content [OK]
Common Mistakes:
  • Using -s or -t instead of -p for content
  • Typing invalid options like --show-content
  • Confusing size with content display
3. Given a Git blob object with hash abc123 containing the text "Hello World", what will be the output of git cat-file -p abc123?
medium
A. blob Hello World
B. Error: object not found
C. abc123
D. Hello World

Solution

  1. Step 1: Understand -p output for blob objects and confirm format

    The -p option prints the content of the object. For a blob, it prints the raw file content, here "Hello World". No extra labels like "blob" or the hash are printed, only the content itself.
  2. Final Answer:

    Hello World -> Option D
  3. Quick Check:

    Blob content = Hello World = D [OK]
Hint: Blob content prints raw text with -p [OK]
Common Mistakes:
  • Expecting type or hash in output
  • Confusing -p with -t or -s output
  • Assuming error if object exists
4. You run git cat-file -p 123xyz but get the error: fatal: Not a valid object name 123xyz. What is the most likely cause?
medium
A. The repository is corrupted
B. You used the wrong option; -p is invalid
C. The object hash 123xyz does not exist in the repository
D. You need to add the object to the index first

Solution

  1. Step 1: Analyze the error message and rule out other causes

    The error "Not a valid object name" means Git cannot find the object with the given hash. -p is valid, repository corruption is less likely without other errors, and objects do not need to be added to the index to be inspected.
  2. Final Answer:

    The object hash 123xyz does not exist in the repository -> Option C
  3. Quick Check:

    Invalid object hash = C [OK]
Hint: Check object hash exists before using cat-file [OK]
Common Mistakes:
  • Assuming -p is invalid option
  • Thinking repository is corrupted without proof
  • Believing objects must be indexed first
5. You want to first check the type, then the size of a Git object with hash def456 and finally print its content. Which sequence of commands correctly achieves this?
hard
A. git cat-file -s def456; git cat-file -t def456; git cat-file -p def456
B. git cat-file -t def456; git cat-file -s def456; git cat-file -p def456
C. git cat-file -p def456; git cat-file -s def456; git cat-file -t def456
D. git cat-file -s def456 -t def456 -p def456

Solution

  1. Step 1: Identify correct individual commands and required sequence

    -t shows type, -s shows size, and -p prints content. Each must be run separately with the object hash in the order: type first, then size, then content. Sequences starting with size or content first do not match, and combining multiple flags in one command is invalid syntax.
  2. Final Answer:

    git cat-file -t def456; git cat-file -s def456; git cat-file -p def456 -> Option B
  3. Quick Check:

    Separate commands for type, size, content = B [OK]
Hint: Run separate commands for each option; no combined flags [OK]
Common Mistakes:
  • Trying to combine -s, -t, -p in one command
  • Running commands in confusing order
  • Missing semicolons or command separators
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard