Bird
Raised Fist0
Gitdevops~5 mins

git cat-file to inspect objects - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes you want to look inside the hidden parts of your Git project to see exactly what is stored. The git cat-file command lets you peek inside Git objects like commits, trees, and blobs to understand what data they hold.
When you want to see the content of a specific commit or file version stored in Git.
When you need to check the exact data stored in a Git object by its hash.
When debugging Git issues by inspecting low-level objects.
When learning how Git stores data internally by viewing raw object contents.
When verifying that a commit or blob contains the expected information.
Commands
Create a new Git repository named example-repo to start tracking files.
Terminal
git init example-repo
Expected OutputExpected
Initialized empty Git repository in /current/path/example-repo/.git/
Change directory into the new repository to work inside it.
Terminal
cd example-repo
Expected OutputExpected
No output (command runs silently)
Create a file named file.txt with the text 'Hello Git' inside.
Terminal
echo "Hello Git" > file.txt
Expected OutputExpected
No output (command runs silently)
Tell Git to track the new file.txt by adding it to the staging area.
Terminal
git add file.txt
Expected OutputExpected
No output (command runs silently)
Save the staged file.txt to the repository with a message describing the change.
Terminal
git commit -m "Add file.txt with greeting"
Expected OutputExpected
[master (root-commit) abcdef1] Add file.txt with greeting 1 file changed, 1 insertion(+) create mode 100644 file.txt
→
-m - Provide a commit message inline
Get the hash ID of the latest commit to use it for inspection.
Terminal
git rev-parse HEAD
Expected OutputExpected
abcdef1234567890abcdef1234567890abcdef12
Show the full content of the commit object identified by the hash. This reveals commit details like tree, parent, author, and message.
Terminal
git cat-file -p abcdef1234567890abcdef1234567890abcdef12
Expected OutputExpected
tree 1234567890abcdef1234567890abcdef12345678 author Your Name <you@example.com> 1686000000 +0000 committer Your Name <you@example.com> 1686000000 +0000 Add file.txt with greeting
→
-p - Pretty-print the object content in a human-readable form
Show the type of the Git object (commit, tree, blob, tag) for the given hash.
Terminal
git cat-file -t abcdef1234567890abcdef1234567890abcdef12
Expected OutputExpected
commit
→
-t - Show the object type
Key Concept

If you remember nothing else from this pattern, remember: git cat-file lets you look inside Git objects by their hash to see their type and content.

Common Mistakes
Using git cat-file without a valid object hash
Git cannot find the object and returns an error because the hash is missing or incorrect.
Always use a full or abbreviated valid object hash from git rev-parse or git log.
Not using the -p flag when wanting readable content
Git outputs raw binary or unreadable data which is hard to understand.
Use git cat-file -p to pretty-print the object content in a readable format.
Summary
Initialize a Git repository and commit a file to create objects.
Use git rev-parse HEAD to get the latest commit hash.
Use git cat-file -p <hash> to view the content of a Git object.
Use git cat-file -t <hash> to see the type of the object.

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